0

我想使用 Htaccess 从 url 中删除查询字符串,我使用以下代码更改了 url,但在重定向到该 url 后,我收到 404 错误。如果我只使用重写语句,那么新的 url 可以正常工作而不会出现 404 错误,但旧的 url 不会自动重定向到新的 url。

这是我正在修改的 htaccess 和 url

Options FollowSymLinks
Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/profile\.php$
RewriteCond %{QUERY_STRING} ^user_id=([0-9]*)$
RewriteRule ^(.*)$ http://www.meenmipage.com/user/%1? [R=302,L,NC]

实际网址是:

http://www.meenmipage.com/profile.php?user_id=2

并修改为:

http://www.meenmipage.com/user/2

如果我删除上面的代码并像这样使用重写语句:

RewriteRule ^user/([^/]*)$ /profile.php?user_id=$1 [NC,L]

然后新修改的url有效,旧的也有效

请告诉我该怎么办?

4

2 回答 2

0

我认为您需要$在此行的末尾删除:

RewriteCond %{REQUEST_URI} ^/profile\.php

因为如果请求 URI 有user_id=2那么这个条件将不匹配

于 2013-03-30T20:41:11.470 回答
-1
Try This !
-----------

Options -MultiViews
Options +FollowSymlinks
RewriteEngine on
rewritecond %{QUERY_STRING} ^user_id=([0-9]*)
rewritecond %{http_host} ^www.meenmipage.com [nc]
RewriteRule ^([0-9]+)$ //www.www.meenmipage.com?user_id=$1 [L,QSA]
于 2013-03-30T20:52:42.910 回答