.htaccess 重写的URL给出404错误

.htaccess 重写的URL给出404错误,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我正在使用模式重写来创建seo友好的URL。请参阅下面的代码 Options +FollowSymLinks RewriteEngine on RewriteRule discover/([0-9]+)$ discover.php?page=$1 [NC,L] RewriteRule ^([^\.]+)$ $1.php [NC,L] 代码在我的本地主机上工作,但在托管服务器上不工作 如果我添加了文件扩展名,它可以在服务器上工作,但是没有扩展名就不能工作 例:下面的作品 RewriteRule

我正在使用模式重写来创建seo友好的URL。请参阅下面的代码

Options +FollowSymLinks
RewriteEngine on

RewriteRule discover/([0-9]+)$ discover.php?page=$1 [NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
代码在我的本地主机上工作,但在托管服务器上不工作

如果我添加了文件扩展名,它可以在服务器上工作,但是没有扩展名就不能工作

例:下面的作品

RewriteRule discover-([0-9]+)\.html$ /discover.php?page=$1 [L]

关于如何使第一个代码正常工作,有什么建议吗?感谢您的帮助。

在请求中添加
.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]

在请求中添加
.php
之前,关闭
MultiViews
选项并检查
.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]
也试试这个

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]
也试试这个

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]

@anubhava示例站点/关于或发现/1所有URL。但我的代码在LocalHost中运行良好上述规则假设sie roots中有
.php
文件和.htaccess可用,如果是这种情况,则此规则将起作用,因为这是我的live网站上的工作规则。确保已启用htaccess和mod_重写。@anubhava示例站点/about或discover/1所有URL。但我的代码在LocalHost中运行良好上述规则假设sie roots中有
.php
文件和.htaccess可用,如果是这种情况,则此规则将起作用,因为这是我的live网站上的工作规则。确保您的htaccess和mod_重写已启用。代码正常工作。必须在文件名Ex:/discover.php之前添加/页=$1[NC,L]代码有效。必须在文件名Ex:/discover.php之前添加/页=$1[NC,L]