Mod_rewrite - url重写不起作用

时间:2014-08-14 12:04:09

标签: apache .htaccess mod-rewrite url-rewriting

我一直试图让我的.htaccess文件中的mod_rewrite在过去的几个小时内工作,但我似乎无法将它拉下来。 .htaccess文件肯定可以在我的服务器上运行,因为我之前使用过它们。

我尝试使用this generator重写它并使用this tool以及我的服务器进行测试。

网址

我需要转

http://someurl.com/news-detail.html?id=10&news=this-is-an-article

http://someurl.com/news/10/this-is-an-article

http://someurl.com/10/news/this-is-an-article

重写

我试过了:

RewriteEngine On
RewriteRule ^([^/]*)/news/([^/]*)$ /news-detail.html?id=$1&news=$2 [L]

RewriteEngine on
RewriteRule /(.*)/news/(.*) news-detail.html?id=$1&news=$2 [L]

RewriteEngine on
RewriteRule news/([0-9]+)/([a-zA-Z_]+)$ news-detail.html?id=$1&news=$2 [L]

和其他许多人。

我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:2)

请在.htaccess文件中检查/添加RewriteBase。 还要检查是否允许htaccess重写。 语法在

之下
RewriteEngine on
RewriteBase /flodername/
RewriteRule ^urlinbrowser/(.*)/(.*)$ filename.php?first_param=$1&secondparam=$2 [L]

答案 1 :(得分:1)

在root .htaccess中保留这样的规则:

RewriteEngine On
RewriteBase /dev/hoig/

RewriteCond %{THE_REQUEST} /news-detail\.html\?id=([^\s&]+)&news=([^\s&]+) [NC]
RewriteRule ^ %1/news/%2? [R=302,L]

RewriteRule ^([^/]+)/news/([^/]+)/?$ news-detail.html?id=$1&news=$2 [L,NC,QSA]

这将支持漂亮网址的/10/news/this-is-an-article URI结构。