带参数的HTACCESS友好网址

时间:2014-08-11 10:53:14

标签: php .htaccess friendly-url

我有一个问题。

我的.htaccess文件:

RewriteEngine On  
RewriteBase /

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z-]+)$ index.php?$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)/([a-z-]+)$ index.php?$1=$2

我需要重定向网址,例如: domena.pl/index.php?aktualnosci到domena.pl/aktualnosci

我会尝试:

RewriteCond %{QUERY_STRING} aktualnosci
RewriteRule ^index\.php$ /aktualnosci? [L,R=301]

但这是重定向循环.. 此外,我有几个空格的网址,我想把这个空格更改为线条和波兰字符,如ąćźż到aczz。

任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:1)

您可以使用:

RewriteEngine On  
RewriteBase /

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

RewriteCond %{THE_REQUEST} \s/+index\.php\?([^\s=]+?)\s [NC]
RewriteRule ^ /%1? [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)/([a-z-]+)$ index.php?$1=$2 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z-]+)$ index.php?$1 [L,QSA]