Apache2 mod_重写模式限制?
因此,我有一个网站,我想使搜索引擎优化友好的使用mod_重写。我希望通过在URL的末尾删除.php并稍后使用mod_rewrite重新附加URL,使URL易于记忆。比如说,我会指出。根据我的经验,我有重写规则,但由于某些原因,它不起作用 我的规则:Apache2 mod_重写模式限制?,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,因此,我有一个网站,我想使搜索引擎优化友好的使用mod_重写。我希望通过在URL的末尾删除.php并稍后使用mod_rewrite重新附加URL,使URL易于记忆。比如说,我会指出。根据我的经验,我有重写规则,但由于某些原因,它不起作用 我的规则: RewriteEngine On RewriteRule ^/?about$ about.php [L] RewriteRule ^/?faq$ faq.php [L] 现在,这些规则并不是这样运作的。似乎如果我将文件重命名为blah.about.
RewriteEngine On
RewriteRule ^/?about$ about.php [L]
RewriteRule ^/?faq$ faq.php [L]
现在,这些规则并不是这样运作的。似乎如果我将文件重命名为blah.about.php和blah.faq.php,并更改重写规则行以反映新的文件名,它就会工作
这是mod_rewrite的一个限制,模式不能如此接近目标文件吗?尝试以下方法:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.*)\.php [NC]
RewriteRule ^ /%1 [R=301,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^([^/]+)/?$ $1.php [L]
第一条规则将请求重定向到phpless页面,下一条规则在内部重定向到php文件本身
这是mod_rewrite的限制吗?模式不能如此接近目标文件
这并不是一个真正的限制,您只是不能将php文件重定向到非php,然后在它生成循环时返回到它,所以我们要做的是捕获请求并从那里重定向,然后在内部重定向到该文件
当然,除非你看到他们有不同的名字。如果我的答案能解决你的问题,请告诉我