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
.htaccess 配置文件url的htaccess重写规则_.htaccess_Mod Rewrite_Url Rewriting_Rewrite - Fatal编程技术网

.htaccess 配置文件url的htaccess重写规则

.htaccess 配置文件url的htaccess重写规则,.htaccess,mod-rewrite,url-rewriting,rewrite,.htaccess,Mod Rewrite,Url Rewriting,Rewrite,这是我的.htaccess: RewriteEngine on RewriteBase /site RewriteCond %{request_filename} -f RewriteRule ^(.*) $1 [L] RewriteRule ^([a-z]+)(/([^/]{0,32})(/.+)?)?$ index.php?a=$1&u=$3 [L] 我正试图以这种方式创建短URL 如果有人访问www.mysite.com/johndoe,htaccess会将他/她发送到

这是我的.htaccess:

RewriteEngine on
RewriteBase /site
RewriteCond %{request_filename} -f

RewriteRule ^(.*) $1 [L]
RewriteRule ^([a-z]+)(/([^/]{0,32})(/.+)?)?$  index.php?a=$1&u=$3    [L]
我正试图以这种方式创建短URL 如果有人访问www.mysite.com/johndoe,htaccess会将他/她发送到这个链接index.php?a=profile&u=johndoe
最好的方法是什么?我确实阅读了htaccess教程并尝试了不同的方法,但失败了:/

尝试反转条件并删除重写基:

RewriteEngine on

RewriteCond %{request_filename} !-f
RewriteCond %{request_filename} !-d
RewriteRule ^([^/]+)/?$  /index.php?a=profile&u=$1    [L]
这将使它成为:

如果有人访问www.mysite.com/johndoe

“johndoe”由
^([^/]+)/?$
匹配,并由
$1
反向引用,导致:

这个链接index.php?a=profile&u=johndoe


您所有的URL都是用于配置文件链接的吗?如果他们是,那么我可以修正这个规则。如果没有(例如,您有关于我们的
以及
博客
),那么您的
htaccess
方法将因可能的冲突而不适用。@MikeAnthony是的,还有其他规则,所以我认为必须进行例外删除重写基础?井场位于/site文件夹下。页面通过/pagename访问。@fogsy但根据您的问题,您的URL如下:
www.mysite.com/johndoe
。另外,根据您的问题,您希望它被重写为
index.php?a=profile&u=johndoe
,我看不出它说的是
/site/index.php?a=profile&u=johndoe
。很抱歉造成混淆。它需要是/site/name。如果我将文件移动到/那么它应该是/name only。。。这有意义吗?