Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Apache .htaccess重写规则多页_Apache_.htaccess_Mod Rewrite_Url Rewriting_Friendly Url - Fatal编程技术网

Apache .htaccess重写规则多页

Apache .htaccess重写规则多页,apache,.htaccess,mod-rewrite,url-rewriting,friendly-url,Apache,.htaccess,Mod Rewrite,Url Rewriting,Friendly Url,几个小时来,我一直在努力解决这个问题,但没有得到正确的答案 我有一个网站 我使用.htaccess使它看起来像这样 我使用下面的.htaccess重写规则,它可以正常工作 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./user.php?username=$1 [L] 问题 我有一个像这样的个人资料页面 我还使用以下.htacc

几个小时来,我一直在努力解决这个问题,但没有得到正确的答案

我有一个网站 我使用
.htaccess
使它看起来像这样 我使用下面的
.htaccess
重写规则,它可以正常工作

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./user.php?username=$1 [L]
问题

我有一个像这样的个人资料页面 我还使用以下
.htaccess
使它看起来像

现在,这根本不起作用,但当我删除第一条重写规则(rule user.php)并将其放在第二条重写规则(rule profile.php)之后,我的配置文件页面工作,反之亦然

因此,基本上,无论我首先放置什么规则,都决定了我可以使用我的URL访问哪个页面。

我需要它为两个页面工作。我同意你的看法,在
.htaccess
rewrite方面,我还没有达到初学者的水平


提前谢谢。

请尝试以下内容。由于URL具有其唯一性,因此最好检查其
%{REQUEST\u URI}
值中的条件,我正在检查REQUEST\u URI是否从
user
开始,然后选择1个规则,如果它从
profile
开始,则选择另一个规则,这样就不会产生混淆(我相信你在这方面做得很好,但由于条件之间没有分离,因此它的引擎IMHO令人困惑)


您也可以尝试下面的方法,首先检查传入的请求是否既不是文件也不是目录,然后检查匹配模式

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^user/([\w-]+)/?$ /user.php?username=$1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^profile/([\w-]+)/?$ /profile.php?username=$1 [NC,L]
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/user/([\w-]+)/?$
RewriteRule ^.*$ /user.php?username=%1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/profile/([\w-]+)/?$
RewriteRule ^.*$ /profile.php?username=%1 [NC,L]
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^user/([\w-]+)/?$ /user.php?username=$1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^profile/([\w-]+)/?$ /profile.php?username=$1 [NC,L]