Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess将slug重写为seo url_Php_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php htaccess将slug重写为seo url

Php htaccess将slug重写为seo url,php,.htaccess,mod-rewrite,url-rewriting,Php,.htaccess,Mod Rewrite,Url Rewriting,我有一些类似的URL: www.mydomain/works/show.php?slug=作品标题 我希望通过以下方式将htaccess转换为seo URL: www.mydomain/works/title-of-the-work 在我的数据库中,我为每个工作条目创建了一个名为slug的字段。第一个URL工作正常 这是my.htaccess当前的外观(它位于我的根目录中): 在过去的24小时里,我阅读并尝试了很多类似的例子,但都没有成功。我确信我的服务器允许重写,因为我可以将非www URL重

我有一些类似的URL:

www.mydomain/works/show.php?slug=作品标题

我希望通过以下方式将htaccess转换为seo URL:

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

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

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

在过去的24小时里,我阅读并尝试了很多类似的例子,但都没有成功。我确信我的服务器允许重写,因为我可以将非www URL重写为www URL。 希望有人能帮忙。谢谢

使用:

RewriteEngine On
RewriteRule ^works/(.*)$ works/show.php?slug=$1 [L]
您还可以使用以下代码将.htaccess文件放入works文件夹:

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

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

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


我还对正则表达式做了一些修改,使URL可以使用或不使用斜杠。

谢谢,但是Chrome说“这个网页有一个重定向循环”你有PHP中的重定向脚本吗?我曾尝试将.htaccess放在works文件夹中,但我得到了相同的错误(错误太多重定向)。在show.php内部,我有以下代码:if(!isset($\u GET[id])或!$archivos=$x->obtener\u registros('galeria',array('slug'=>$\u GET[id]){Header('Location:./”;exit();}对不起,代码是这样的:if(!isset($\u GET[slug])或!$archivos=$x->obtener\u registros galeria('galeria',array('seourl'=>$\u GET[slugros exit]){Header('Location:/);Location:/);exit();}重定向可能有问题?:)
RewriteEngine On
RewriteRule ^(.*)$ show.php?slug=$1 [L]
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([^/]+)/?$ show.php?slug=$1 [L]