Php htaccess多重重写规则在XAMPP中不起作用
我目前有两条规则: 第一个将“domain.com/profile/user”替换为“domain.com/profile.php?user=user” 第二条规则从所有文件中删除.php,以便无需.php即可访问这些文件 以下是.htaccess文件:Php htaccess多重重写规则在XAMPP中不起作用,php,html,.htaccess,xampp,Php,Html,.htaccess,Xampp,我目前有两条规则: 第一个将“domain.com/profile/user”替换为“domain.com/profile.php?user=user” 第二条规则从所有文件中删除.php,以便无需.php即可访问这些文件 以下是.htaccess文件: RewriteEngine On RewriteBase / RewriteRule ^profile/([^/]+)$ profile.php?user=$1 [L,QSA] RewriteCond %{REQUEST_FILENAME}
RewriteEngine On
RewriteBase /
RewriteRule ^profile/([^/]+)$ profile.php?user=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
在当前状态下,第一条规则有效,第二条规则无效
但是,如果将“选项+多视图”添加到顶部,则:
Options +MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^profile/([^/]+)$ profile.php?user=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
那么第一条规则不起作用,而第二条规则起作用
我就是想不出如何让它们都工作
注意:我正在为web服务器使用XAMPP vhost,并已更改相关设置以允许htaccess使用XAMPP。好的,我找到了一个解决方案,不是最好的,但它可以工作 我只是简单地将我的.php移除程序更改为另一个版本,以实现相同的任务 我不知道为什么这个版本有效而另一个版本无效。如果你知道为什么原来的一个不工作,那么请让我知道 以下是工作版本:
RewriteEngine On
RewriteBase /
RewriteRule ^profile/([^/]+)$ profile.php?user=$1 [L,QSA]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
资料来源: