3

我正在尝试使用 htaccess将http://test.pearlsquirrel.com/explore_all?u=hiphop重定向到http://test.pearlsquirrel.com/explore_all/hiphop 。但是,它一直在这里重定向:http ://test.pearlsquirrel.com/explore_all/?u=site_error.php 。我在 Stackoverflow 上到处寻找答案,但我似乎找不到它。我真的很感激在解决这个问题方面的一些帮助,谢谢!

这是我的 .htaccess 文件

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.pearlsquirrel.com$ [NC]
RewriteRule ^(.*)$ http://pearlsquirrel.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php

RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+) explore_all?u=$1 [L]
4

1 回答 1

2

你可以试试这个:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING}  [^=]+=([^=]+)
RewriteRule .* /%1? [L]

将映射此:

http://test.pearlsquirrel.com/explore_all?u=hiphop

对此:

http://test.pearlsquirrel.com/explore_all/hiphop

用这个替换 .htaccess 文件中的相应代码。

我没有检查您的 .htaccess 文件中的规则。

选项

现在,如果它是相反的方式,我认为是这样,并且想法是映射这个传入的 URL:

http://test.pearlsquirrel.com/explore_all/hiphop

到这个资源:

http://test.pearlsquirrel.com/explore_all?u=hiphop

用这个替换上面的规则集:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  .*/([^/]+)/?
RewriteRule .* http://test.pearlsquirrel.com/explore_all?u=%1 [L] 
于 2013-01-03T21:01:18.097 回答