3

我有一些这样的网址:

www.mydomain/works/show.php?slug=title-of-the-work

我想让 htaccess 以这种方式转换为 seo URL:

www.mydomain/works/title-of-the-work

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

这是我的 .htaccess 当前的外观(它位于我的根目录中):

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

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

4

2 回答 2

3

采用:

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

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

RewriteEngine On
RewriteRule ^(.*)$ show.php?slug=$1 [L]
于 2013-08-31T10:19:42.877 回答
2

最后这是我正在使用的htaccess(在works文件夹内):

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

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

我还稍微更改了正则表达式,以使 URL 可以使用或不使用斜杠。

于 2013-09-01T17:00:02.570 回答