2015-05-04 23 views
1

我想從url中刪除文件名,其中url爲:mysite.com/project.php?page=AAA並且此處想要刪除project.php?page=。所以,以前我用下面的方法成功地刪除其他文件名從URL其中,URL是:mysite.com/userinfo.php?user=111和刪除userinfo.php?user=在第二種情況下從url中刪除文件名不起作用

的htaccess:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}\.php -f [NC] 
RewriteRule ^(.+?)/?$ $1.php [L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/?$ userinfo.php?user=$1 [L,QSA] 

但現在當我準備申請相同的方法刪除project.php?page=。它不工作。

我想:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}\.php -f [NC] 
RewriteRule ^(.+?)/?$ $1.php [L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/?$ project.php?page=$1 [L,QSA] 

這裏是所有的htaccess

#Remove php# 
RewriteEngine On 
RewriteBase/
# To externally redirect /dir/file.php to /dir/file 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?] [NC] 
RewriteRule^%1%2 [R=302,L,NE] 
# To internally forward /dir/file to /dir/file.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ $1.php [L] 

#Remove Userinfo# 
Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}\.php -f [NC] 
RewriteRule ^(.+?)/?$ $1.php [L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/?$ userinfo.php?user=$1 [L,QSA] 
+0

我是否正確理解您希望將url mysite.com/userinfo.php?user=111重定向到mysite.com/111? – splash58

+0

是的,你是對的。 – koc

回答

1

從mysite.com/userinfo.php?user=111重定向到mysite.com/111它足夠2線:

RewriteCond %{QUERY_STRING} user=([^?&]+) [NC] 
RewriteRule ^userinfo.php$ /%1? [R,L] 
相關問題