.htaccess漂亮的网址,空格?

时间:2012-06-03 18:42:31

标签: .htaccess mod-rewrite friendly-url pretty-urls

这是我的代码,允许我更改

mydomain.com/?name=something&action=something&other=something

mydomain.com/something/something/something

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} -d [OR] 
RewriteCond %{SCRIPT_FILENAME} -f [OR]
RewriteRule .* - [L]

RewriteRule ^(\w+)/(\w+)/(\w+)/?$ /index?name=$1&action=$2&other=$3
RewriteRule ^(\w+)/(\w+)/?$ /index.php?name=$1&action=$2
RewriteRule ^(\w+)/?$ /index.php?name=$1

但有时第一个“东西”可能是带有空格的东西,我不太确定如何格式化它。例如“非常随机的东西”。我知道网址是用%20格式化的,但我怎么能用.htaccess这样做,所以网址可能是

mydomain.com/something very random / somethng / something

第一个单词也将以-和随机数跟踪,例如-4738

e.g。 mydomain.com/something very random-4738/something/something

我如何使用我正在使用的.htaccess代码来解决这个问题?

1 个答案:

答案 0 :(得分:0)

用这个替换你的代码

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{SCRIPT_FILENAME} -d [OR] 
RewriteCond %{SCRIPT_FILENAME} -f [OR]
RewriteCond %{SCRIPT_FILENAME} -l
RewriteRule .* - [L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /index.php?name=$1&action=$2&other=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?name=$1&action=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ /index.php?name=$1 [L,QSA]