htaccess重写slu to到seo url

时间:2013-08-31 10:17:29

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

我有一些像这样的网址:

www.mydomain /工作/ show.php?蛞蝓=标题的最工作

我希望以这种方式将htaccess转换为seo网址:

www.mydomain /工作/标题的最工作

在我的数据库中,我为每个工作条目创建了一个名为slug的字段。第一个URL工作正常。

这就是我的.htaccess当前的样子(它放在我的根目录中):

RewriteEngine On
RewriteRule /works/(.*)$ /works/show.php?slug=$1

我在过去24小时内阅读并尝试了很多类似的例子但无济于事。我确定我的服务器允许重写,因为我可以例如将非www重写为www URL。 希望有人能提供帮助。感谢

2 个答案:

答案 0 :(得分:3)

使用:

RewriteEngine On
RewriteRule ^works/(.*)$ works/show.php?slug=$1 [L]

您还可以使用以下代码将.htaccess文件放入工作文件夹中:

RewriteEngine On
RewriteRule ^(.*)$ show.php?slug=$1 [L]

答案 1 :(得分:2)

最后这是我正在使用的htaccess(在工作文件夹中):

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([^/]+)/?$ show.php?slug=$1 [L]

感谢userNOID让我走上正轨。确实在htaccess和我的php代码之间有一个重定向循环,通过添加上面的两个条件来解决,如果文件存在phisically存在,告诉服务器忽略重定向(在4种情况下是真的:/ works,/ works / web-design ,/ works / graphic-design and works / apps)

我还更改了正则表达式,以便能够使用URL而不使用斜杠。