强制htaccess从最后一个斜杠重写url

时间:2013-01-11 18:48:52

标签: .htaccess rewrite slash

我需要使用htaccess更改以下网址:

http://example.com/main/en/index.php?page=pages&page_id=9

为:

http://example.com/main/en/pages/9.html

我是按照以下规则完成的:

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ /main/fa/?index.php?page=$1&page_id=$2 [L]

但是有一个问题,这条规则使我的显示网址为:

http://example.com/pages/9.html

我想在最后一次斜线后更改网址。

因为我必须使用多种语言,否则会与其他语言发生冲突。我该如何写这条规则?

1 个答案:

答案 0 :(得分:0)

也许这就是你要找的东西:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  ([^/]+)/([^/]+)/([\d]+)\.html/?   [NC]
RewriteRule  .*          main/%1/index.php?page=%2&page_id=%3 [L]

将在内部重定向:

http://example.com/main/LangCode/PageName/PageID.html

要:

http://example.com/main/LangCode/index.php?page=PageName&page_id=PageID