我想在网址栏中输入.htaccess
时让http://www.example.org/aa/exists.php
获取页面http://www.example.org/aa/doesntexist.php
。 .htaccess
文件显然正常运行,因为DirectoryIndex
行产生了所需的结果,网址栏中的http://www.example.php
获取了页面http://www.example.php/aa/default.php
。
我尝试根据我的情况调整对how to redirect using HTTP_REFERER on htaccess的响应,但没有成功。
以下是我的.htaccess
文件的全文。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} ^(.*)www\.example\.org/aa/doesntexist\.php [NC]
RewriteRule ^(.*)(www\.example\.org/aa/)doesntexist\.php(.*)$ $1$2exists.php$3 [NC,L]
DirectoryIndex aa/default.php
</IfModule>
对http://www.example.org/aa/doesntexist.php
的请求会产生以下错误:
未找到
在此服务器上找不到请求的网址/aa/doesntexist.php。
此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。
答案 0 :(得分:0)
尝试在启动引擎之前添加Options +FollowSymlinks
和Allow Override All
作为第一个命令。
我在你的状况或规则中看不出任何错误。我最近有一个非常类似的问题可以通过这种方式解决。 如果这不是问题,你可以查看http://forum.modrewrite.de/topic82.html 不幸的是,这是德语,但也许有用 - 至少在谷歌翻译的帮助下(肯定不完美,但足够好)。
顺便说一句:如果有理由检查引荐来源而不仅仅是请求的URI,请保留它。否则,单凭规则就能做到你想要的。如果条件的内容与规则的模式匹配,则不需要条件。