开发者

Add Trailing Slash to URL

My current .htaccess file looks like this:

RewriteEngine on
RewriteBase /

Options +FollowSymLinks -Indexes

RewriteRule ^video/(.*)$ video.php?id=$1 [L]
RewriteRule ^video/(.*)$([a-zA-Z0-9]+) video.php?id=$1 [L]
RewriteRule ^tag/(.*)/page-(.*)/$ tag.php?tag=$1&page=$2 [L]
RewriteRule ^tag/(.*)/page-(.*)$ tag.php?tag=$1&page=$2 [L]
RewriteRule ^tag/(.*)?$ tag.php?tag=$1
RewriteRule ^page/(.*)$ page.php?id=$1 [L]
RewriteRule ^feed feed.php [L]

i want to add a slash to a开发者_开发技巧ll my url's

like this:

> example.com/video/video_id/
> 
> example.com/tag/keyword/
> 
> example.com/tag/keyword/page-2/      (3... and so on...)
> 
> example.com/page/name/
> 
> example.com/feed/

And i want to redirect my current links to the new slash url's

Can somebody help me, please?


Your current htaccess file supports a trailing / although you probably would prefer

RewriteRule ^video/(.*)/$ video.php?id=$1 [L]

So that you don't have to handle the / in video.php

Just update all of your URLs to be example.com/video/video_id/ instead of example.com/video/video_id in whatever you are using (your framework/flat HTML files).

Your old URLs will still work. If you really want to redirect them, you can:

RewriteCond %{REQUEST_URI} ^video/ [NC]
RewriteRule ^video/(.*)$ video.php?id=$1 [L,R=301]

The [NC] means No-case checking (so /VIDEO) would work. The [R=301] means permanent redirect (useful for SEO).

Go through and expand for your other rules.

Edit:

Sorry, I don't think it was quite right before. Try the following:

RewriteEngine on
RewriteBase /

Options +FollowSymLinks -Indexes

RewriteCond %{REQUEST_URI} ^video/ [NC]
RewriteRule ^video/(.*)$ video/$1/ [L,R=301]
RewriteRule ^video/(.*)/$ video.php?id=$1 [L]

RewriteCond %{REQUEST_URI} ^tag/ [NC]
RewriteRule ^tag/(.*)/page-(.*)$ tag/$1/page-$2/ [L,R=301]
RewriteRule ^tag/(.*)/page-(.*)/$ tag.php?tag=$1&page=$2 [L]

...
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜