如果该文件不存在于文档根目录中,但是确实存在于其他文件夹中,则我们正在尝试重写到另一个文件夹。 另一个文件夹位于完全不同的位置,在虚拟主机中使用“别名”。 所以,我们到目前为止(从这篇文章如何重写根文件,如果文件存在于文件夹? )是: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/legacy/ RewriteRule ^(.*)$ legacy/$1 [QSA,L] 这在一定程度上起作用,但是似乎将所有内容都指向了传统文件夹,而不仅仅是当文件不存在于第一个位置并且存在于传统文件夹中时。 杰克,先谢谢你的帮助
我有一个redirect的Apache服务器,我设置了约30个域名。 我想要所有的请求被redirect到主服务器,除了一个域。 基本上任何域到这个服务器被转发到www.maindomain.com; 但是,我想要domain234.com和www.domain234.com转发到https://www.site.com 我发现了这个回应,试了一下却没有成功: <VirtualHost _default_:80> RewriteCond %{HTTP_HOST} ^(.*)$ RewriteRule ^(.*)$ https://www.maindomain.com [R=permanent,L] </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName domain1.com ServerAlias www.domain1.com ServerAlias domain2.biz ServerAlias domain3.info RewriteEngine on RewriteCond (.*) https://site.foo.com [R=301,L] </VirtualHost> 任何人有我的build议来解决这个问题?
我想在接收到一个不是文件的请求时重写URL,或者是根目录subdir或者根本不是一个目录。 例如( !file )&&(( subdir )|( !directory )) 这是我的.htaccess : RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} ^/(subdir|subdir/.*).*$ [OR] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+) index.php?request=$1 [QSA] 除了subdir以外,它可以在任何地方使用 捕获subdir的重写条件不起作用,它的行为就好像根本没有重写规则。 我在这里做错了什么?
这可能非常简单,但RTFM'ing和尝试几件事情后,我似乎有点卡住了… 目前的版本“出现”让我访问目录,而不是通过浏览器的文件。 (目录的文件都是755(走+ RX) – 644应该是足够的,但我抓) – 即http://schoolofish.org/html-images/ <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/Images/.* [NC] RewriteCond %{REQUEST_URI} !^/html-images/.* [NC] RewriteRule . index.php [L] </IfModule> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f […]
我有一个redirect循环,它可以通过问rewritecond来解决,如果这是自用户请求第一次,或者它已经跳。 在.htaccess里面知道吗? 提前致谢。 解: RewriteCond%{ENV:REDIRECT_STATUS}!= 200 做了诡计!
我最近上传了一个PHP主题在我的服务器上。 除了我的主页,其他任何部分都可以正常工作。 例如,当访问www.mywebsite.com/anything主题正在工作,但在主页www.mywebsite.com显示服务器的默认页面。 我正在玩htacess RewriteEngine,它在某些情况下工作,但可能不正确。 这是我迄今为止: <IfModule mod_rewrite.c> RewriteEngine on Options -Multiviews RewriteCond %{REQUEST_URI} !-d RewriteCond %{REQUEST_URI} !-f RewriteRule ^(.*)?$ index.php?a=$1 [QSA,NC,L] ErrorDocument 404 /new/404.php </IfModule> 这使我的主页工作,但标题没有显示它的标题上的“页面未find”。 该页面正在工作,我正在改变的是上面的两个RewriteCond。 他们被设置为{REQUEST_FILENAME}但这使得我的网站主页不工作,并显示默认的服务器页面。
我有我的.htaccess文件的这个问题。 Google在网站站长工具中有一些我不想要的url(404错误)。 我需要重写包含– , /-或结尾的url,例如: replace–与- 删除-后/ 删除结尾- …但只有当URL不包含product_info.php 。 我尝试过,但它不工作… RewriteCond %{REQUEST_URI} !^/product_info\.php(.*)$ RewriteRule ^(.*)–(.*)$ /$1-$2 [L,R=301] RewriteRule ^(.*)/-(.*)$ /$1/$2 [L,R=301] RewriteRule ^(.*)-$ /$1$2 [L,R=301] 这是一个Magento电子商店与激活清漆caching。 编辑#1: 是的,他们出现在404错误报告! 不工作我的意思是:Magento说:“这个文件已经搬到这里”。 如果我点击那里,有一个“ESI块错误” product_info.php?product=TestProduct–Green–XXL之后可以有东西 在这种情况下,我不想replace– – = – >这是我想的问题。 编辑#2: 这是完整的.htaccess 。 我删除了评论期望redirect我试图得到工作,因为很多的空间。 DirectoryIndex index.php <IfModule mod_php5.c> php_value memory_limit 6144M php_value max_execution_time 18000 php_flag magic_quotes_gpc off php_flag […]
我试图阻止引用垃圾邮件到我运行的一些网站。 然后我在日志文件中遇到了很多这样的行。 \xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xb9\xd0\xba\xd0\xb0.kz 目前,我正在使用我的.htaccess文件中的以下行保持引荐来源垃圾邮件不出现在客户的AWStats报告中。 RewriteCond %{HTTP_REFERER} ^http(s)?:\/\/([^.]+\.)*domain\.com\/ 这似乎工作正常,但我似乎有编码的URL的问题。 如果我将URL解码为стройка.kz那么我可以使用它作为条件吗?
我有一个运行apache2和php7的networking服务器。 在我的apacheconfiguration中,有如下的redirect规则: RewriteCond %{HTTP_HOST} !^www.* RewriteRule .* %{HTTP:X-Forwarded-Proto}://www.%{HTTP_HOST}%{REQUEST_URI} [QSA,R=301,L] 这应该执行http(s)://example.com/scpript?param1=x¶m2=yredirect到http(s)://www.example.com/scpript?param1=x¶m2=y 它基本上工作,只有一个例外:只有第一个getparameter passing给rewitten url,所以我的客户端实际上收到http(s)://www.example.com/scpript?param1=x作为redirect目标。 我很困惑,我怎么让系统通过完整的查询呢? 如果还试过 RewriteRule .* %{HTTP:X-Forwarded-Proto}://www.%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [QSA,R=301,L] 但是,这会将我redirect到http(s)://www.example.com/scpript?param1=x¶m1=x 。 在重写开始之前,它看起来像是省略了其他参数。
我正在升级一个网站,我用这个.htaccess文件来显示维护页面: #MAINTENANCE-PAGE REDIRECT RewriteEngine on RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.0 # Bogus IP address for posting here RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.0 # Bogus IP address for posting here RewriteCond %{REQUEST_URI} !^/maintenance\.html$ RewriteRule ^(.*)$ http://www.mysite.no/maintenance.html [R=307,L] 这将打开所有用户的维护页面,除了我添加的两个IP地址。 他们得到一个Internal Server Error 。 我在另一个网站上使用了相同的脚本,并且工作正常。 看看错误日志,我看到以下内容: /var/www/vhosts/mysite.no/httpdocs/.htaccess: RewriteCond: bad flag delimiters 如果我删除我的.htaccess文件,我可以使用我的网站就好了。 我的网站使用CentOS 5托pipe在VPN上。 我该如何解决这个问题?