我正在使用模式重写来制作seo友好的网址。请参阅以下代码
Options +FollowSymLinks
RewriteEngine on
RewriteRule discover/([0-9]+)$ discover.php?page=$1 [NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
代码在我的本地主机中工作,但在托管服务器中它不起作用。
如果我添加了文件扩展名,它可以在服务器中运行,但没有扩展程序,它不起作用。
Ex:以下作品
RewriteRule discover-([0-9]+)\.html$ /discover.php?page=$1 [L]
有关如何使第一个代码工作的任何指示?感谢您的帮助。
答案 0 :(得分:1)
在请求中添加MultiViews
之前,请关闭.php
选项并检查是否存在.php
文件:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteRule discover/([0-9]+)/?$ discover.php?page=$1 [NC,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
答案 1 :(得分:1)
试试这个,
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^discover/([0-9]+)$ discover.php?page=$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]