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 HTACCESS重定向用户名_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

.htaccess HTACCESS重定向用户名

.htaccess HTACCESS重定向用户名,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,我正在建立一个社会网络,有一个问题与个人资料网址的简单地说,我试图改变混乱的网址从 www.mysite.com/user.php?u=MyUsername 到 很简单,我只想用htaccess,所以我添加了这个 RewriteRule ^user/([0-9a-zA-Z]+) user.php?u=$1 [NC,L] 但似乎每次我导航到/user/MyUsername时,它都无法在我的系统上工作 www.mysite.com/user/MyUsername/u?=MyUsername 我

我正在建立一个社会网络,有一个问题与个人资料网址的简单地说,我试图改变混乱的网址从

www.mysite.com/user.php?u=MyUsername

很简单,我只想用htaccess,所以我添加了这个

RewriteRule ^user/([0-9a-zA-Z]+) user.php?u=$1 [NC,L]
但似乎每次我导航到/user/MyUsername时,它都无法在我的系统上工作

www.mysite.com/user/MyUsername/u?=MyUsername
我被要求把整个htaccess文件放在这里,所以这里是

RewriteEngine on
RewriteCond %{HTTP_HOST} ^tmysite\.com
RewriteRule ^(.*)$ mysite.com/$1 [R=permanent,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(([^/]+/)*)index\.(html?|php[45]?|[aj]spx?)\ HTTP/
RewriteRule index\.(html?|php[45]?|[aj]spx?)$ mysite.com/%1 [R=301,L]

#Rewrite for signup.php login.php logout.php
RewriteRule ^login login.php [NC,L]
RewriteRule ^signup signup.php [NC,L]
RewriteRule ^logout logout.php [NC,L]
RewriteRule ^UserGuide user_guide.php [NC,L]
RewriteRule ^forgotpass forgot_pass.php [NC,L]
RewriteRule ^user/([0-9a-zA-Z]+) user.php?u=$1 [NC,L]

ErrorDocument 404 /pagenotfound.php
ErrorDocument 403 /403.php

<Files 403.shtml>
order allow,deny
allow from all
</Files>
重新编写引擎打开
重写cond%{HTTP_HOST}^tmysite\.com
重写规则^(.*)$mysite.com/$1[R=永久,L]
重写cond%{THE|u REQUEST}^[A-Z]{3,9}\/([^/]+/)*)索引\(html?| php[45]?|[aj]spx?\HTTP/
重写规则索引\(html?| php[45]?|[aj]spx?)$mysite.com/%1[R=301,L]
#重写signup.php login.php logout.php
重写规则^login login.php[NC,L]
重写规则^signup signup.php[NC,L]
重写规则^logout logout.php[NC,L]
重写规则^UserGuide user\u guide.php[NC,L]
重写规则^forgotpass\u pass.php[NC,L]
重写规则^user/([0-9a-zA-Z]+)user.php?u=$1[NC,L]
ErrorDocument 404/pagenotfound.php
ErrorDocument 403/403.php
命令允许,拒绝
通融

只是想让您知道所有其他重写规则都能完美工作。

测试代码:

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^u=(.+)$ [NC]
RewriteRule ^user.php /user/%1? [R=301,L]

RewriteRule ^user/([0-9a-zA-Z]+) user.php?u=$1 [NC,L]
说明:

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^u=(.+)$ [NC]
RewriteRule ^user.php /user/%1? [R=301,L]

RewriteRule ^user/([0-9a-zA-Z]+) user.php?u=$1 [NC,L]
  • %{QUERY\u STRING}^u=(.+)$
    将捕获GET变量
    u
    。变量包含的所有内容都传递给
    %1
    。另外,
    R=301
    将使用SEO友好的301头代码重定向。请注意,如果要在url中使用多个GET变量,则必须稍微更改语法
  • 最后一条规则重写rule
    ^user/([0-9a-zA-Z]+)user.php?u=$1[NC,L]
    将捕获您的url
    www.mysite.com/user/MyUsername
    user.php?u=$1

按如下方式重定向用户名:

重定向到

可以这样设置.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_URI} @(.*)
RewriteRule ^(.*) /curriculum/%1/? [L,R=301]

将htaccess文件的全部内容放在这里。当然,我会为您更新问题@hjpotter92