2017-07-11 25 views
1

我想更改我的URL。 目前,他们是这样的:带参数Mod_Rewrite - 动态网站

http://website.net/?page=news 
http://website.net/?page=information&skin=217 (shows a mario skin with informations) 

我希望他们看起来像这样:

http://website.net/news/ 
http://website.net/mario/ 

我至今尝试过的以下内容:

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^page=information&skin=217$ 
RewriteCond %{REQUEST_URI} ^\/$ 
RewriteRule .* http://website.net/Mario/? [R=301,L] 

^这个代码适用于更改URL地址,但我收到404错误:找不到页面。似乎这不是太好。

我错过了什么,我需要改变什么?
这也与给定的参数来工作,所以:http://website.net/Mario/还是应该知道的参数页=信息,皮肤= 217

感谢

+0

?page = is url。内容被index_php包含在$ _GET ['page'] – iTzMeRafa

+0

对不起,看到我的错误。改为?第 – iTzMeRafa

回答

1

您可以在网站根目录的.htaccess使用此代码:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/+\?page=information&skin=217\s [NC] 
RewriteRule^/mario/? [R=301,L] 

RewriteCond %{THE_REQUEST} \s/+\?page=([^\s&]+)\s [NC] 
RewriteRule^/%1/? [R=301,L,NE] 

RewriteRule ^mario/?$ /?page=information&skin=217 [L,QSA,NC] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/?$ /?page=$1 [L,QSA] 
+0

作品感谢迄今,但我的CSS现在不起作用。我想我必须在index.php中更改我的路径吧? – iTzMeRafa

+0

对于css/js相对路径,在页面的HTML部分下面加上'':'' – anubhava

+1

谢谢!似乎工作:) – iTzMeRafa

0
`RewriteCond %{THE_REQUEST} \s/+\?page=information&skin=([^\s&]+)\s [NC] 
RewriteRule^/%1/? [R=301,L,NE] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/?$ /?page=information&skin=$1 [L,QSA] 

RewriteCond %{THE_REQUEST} \s/+\?page=information&resourcepack=([^\s&]+)\s [NC] 
RewriteRule^/%1/? [R=301,L,NE] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)/?$ /?page=information&resourcepack=$1 [L,QSA]` 

我有这个现在,工作正常,所有皮肤,但不适用于资源包。为什么?
还尝试将第二个博客中的%1和$ 1更改为%2和$ 2。

+0

找到解决方案。没关系 :) – iTzMeRafa