Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess多重重写规则在XAMPP中不起作用_Php_Html_.htaccess_Xampp - Fatal编程技术网

Php htaccess多重重写规则在XAMPP中不起作用

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}

我目前有两条规则:

第一个将“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}.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]
资料来源: