繁体   English   中英

Mod重写(SEO友好URL)

[英]Mod Rewrite (SEO Friendly URL's)

您可能以为我可以轻松地在S / O上找到答案,但是我已经尝试了一切,经过数小时的挫折后,我屈服了,然后看看真正的专家的想法。

我敢肯定,这可以通过mod rewrite来完成,但是我会顺便给你的。

问题:我正在尝试打开这样的网址...

http://domain.com/new-cars/state.php?stateCode=al

至少要...

 http://domain.com/new-cars/al-new-cars

不过,理想情况下,我希望它看起来像这样(是的,我愿意重写一些代码以将完整的状态名称用作$ stateCode变量,以使其变得更简单!)...

http://domain.com/new-cars/alabama-new-cars

最终,该计划是要能够在诸如...的链接中使用URL。

http://domain.com/new-cars/alabama-new-cars

并让.htaccess负责将此SEO友好URL与动态版本相关联并正确显示页面。

无论哪种方式,我都无法根据自己的需要弄清楚该如何做。

这是我尝试过的。

  Options +FollowSymlinks RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^new-cars/([^-]*)-new-cars/$ /new-cars/state.php?stateCode=$1 [L,QSA,NC] 

我使用2个不同的mod重写生成器以及对其他人的问题的各种答案创建的各种变体。

绝对没有任何作用。

我希望当我去

http://domain.com/new-cars/state.php?stateCode=AL

它将URL重写为

http://domain.com/new-cars/AL-new-cars

...但事实并非如此。 取而代之的是,它保持与我键入的动态URL完全相同。如果我转到“所需”重写URL,则会收到404错误,表明该页面不存在。

我究竟做错了什么?

我以为可能我的.htaccess权限设置不正确,但是我可以很容易地通过.htaccess进行301重定向,事实并非如此。

也许有人可以帮忙。 我已经尝试了很多排列,甚至为了最基本的重写而安定下来,只是为了看看我是否可以使它工作-但是什么也没有。

任何帮助表示赞赏!

您可以使用:

Options +FollowSymlinks

RewriteEngine on
RewriteBase /

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+new-cars/state\.php\?stateCode=([^\s&]+) [NC]
RewriteRule ^ /new-cars/%1-new-cars? [R=301,L,NE]

# internal forward from pretty URL to actual one
RewriteRule ^new-cars/([^-]*)-new-cars/?$ /new-cars/state.php?stateCode=$1 [L,QSA,NC]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM