Php htaccess重写url和重定向
我想知道如何将这个urlPhp htaccess重写url和重定向,php,.htaccess,Php,.htaccess,我想知道如何将这个urlprofile.php?user=1重写为/user/1。 我知道这可以通过.htaccess完成。这是我尝试过的,效果很好,但唯一的问题是 RewriteCond %{THE_REQUEST} \s/+profile\.php\?user=([^\s&]+) [NC] RewriteRule ^ /%1? [R=302,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}
profile.php?user=1
重写为/user/1
。
我知道这可以通过.htaccess完成。这是我尝试过的,效果很好,但唯一的问题是
RewriteCond %{THE_REQUEST} \s/+profile\.php\?user=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ profile.php?user=$1 [L,QSA]
除了这些代码之外,my.htacces还有这些行
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.*$ [NC]
RewriteRule \.(gif|jpg|png)$ http://www.domain.com [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
ErrorDocument 404 /error404.php
ErrorDocument 403 /error404.php
Options -Indexes
RewriteCond %{THE_REQUEST} \s/+page\.php\?pagename=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /page.php?pagename=$1 [L,QSA]
请告诉我我的.htaccess页面是否正确。我不擅长htaccess在htaccess rewrite中,您实际上想要将url结构重定向到不同的url 如果您有到profile.php?user=1的链接,您必须将其更改为:
profile.php/user/1
,然后告诉您的htacess将此地址重定向到此profile.php?user=1
您可以这样做:
RewriteRule ^user/(.*)$ index.php?&user=$1
如果您想测试一些htaccess,我将推荐此usedul站点:更改此站点:
RewriteCond %{THE_REQUEST} \s/+profile\.php\?user=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=302,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ profile.php?user=$1 [L,QSA]
致:
并确保页面具有绝对链接或将其添加到页面标题:
<base href="/" />
否则,您的所有链接都将被破坏。该页面可能重复。请回答我的问题。请在此处回答“但唯一的问题是它…”???问题是什么?我想重新编写profile.php中的url?user=1到/user/1页面指向user/1,但页面上显示404错误。。有什么想法吗?@anamika第二条规则捕获以
/user/
<base href="/" />