我有一个像this-is-the-title.php
这样的网址colomn的数据库
我想在这里激活mod_rewrite:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+)$ news.php?url=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ news.php?url=$1
但我对.php
扩展程序有疑问。此规则仅适用于this-is-the-title
而不是this-is-the-title.php
。有没有办法激活mod重写与扩展名为.php的标题或我必须更改标题?
提前致谢
答案 0 :(得分:4)
你的rewriterule不允许使用点字符...如果你想要something.php
匹配,请使用:
^([a-zA-Z0-9-/.]+)$
我还简化了可能存在尾部斜杠的事实:由于斜杠已被允许,因此尾部斜杠也将匹配。
不要忘记添加一些重写以避免重写现有目录或文件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
顺便说一句,为重写的URL添加php扩展没有任何意义,你应该坚持使用没有扩展名的干净URL。
所以你最终得到这样的东西:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([-/.a-zA-Z0-9]+)$ news.php?url=$1 [QSA,L]
答案 1 :(得分:0)
可能使用类似于
的规则RewriteRule ^([a-zA-Z0-9-/]+)\.php$ news.php?url=$1 [L]