开发者

mod_rewrite positioning and wording

I renamed about 50 pages of my website. I want to make an internal rewrite from th开发者_C百科e old pages to the new pages. This is the example that Apache gives.

RewriteEngine  on
RewriteBase    /~quux/
RewriteRule    ^foo\.html$  bar.html

I am not sure if I need the rewriteBase /. I have only individual webpages (no subs). I understand the terms "foo" and "bar" and "quux" are universal words for examples. If I have only one domain on this server, and the rewrite rule will apply to the root directory, do I need to include rewriteBase /, rewriteBase /~quux/, or do I even need rewriteBase?

I assume that when using rewriteBase /~quux/, the actual subdirectory is inserted were /~quux/ is. Even though I don't have subdirectories, is this correct?

Can someone please arrange the correct script illustrated above?

Also, I understand that this script would be placed BEFORE other .htaccess directives, such as non-www to www and index to /. Is this correct?

RewriteEngine on
Options +FollowSymLinks

#rewrite old to new pages internaly
RewriteBase    /~quux/
RewriteRule    ^foo\.html$  bar.html

#non-www to www
RewriteCond
RewriteRule ...

#index to /
RewriteCond
RewriteRule ...


RewriteBase:

If your page is like:

http://mydomain.com/subdir/index.html

and your .htaccess file is in subdir/, then you need to set it:

RewriteBase /subdir/

This lets you make your rules ignore the subdirectory, so

RewriteRule ^old_index.html$ new_index.html

would redirect subdir/old_index.html to subdir/new_index.html

Positioning:

The positioning of the rules only matter if you are not using the [L] flag after your rules. This modifier tells mod_rewrite to stop rewriting and make the redirect. Not using it will let the rewrite engine do everything it can with your url in one go. So if your url is like this:

http://mydomain.com/old_index.html

It will be converted to

http://www.mydomain.com/new_index.html

No matter which rule comes first, the one that adds the www. or the one that points to the new pages. But if there is an [L] flag, then it may be done in 2 redirects.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜