0

关于如何使用 mod_rewrite 更改 URL 是否有任何好的、清晰的参考?

我正在尝试进行基本的 URL 重写,当我试图解决这个问题时,我发现有一百万个问题来自为此苦苦挣扎的人以及许多随机示例,但没有单一资源可以解释它的工作原理以及所有选项是,等等。有时我很幸运,发现了与我正在尝试做的事情相似的事情,但通常有很多不同的版本。有时他们都工作。有时他们都没有。所以这是一个猜谜游戏。

我找到了apache mod_rewrite文档,但它读起来像廉价的立体声指令。(只是一堆细节和例子,没有明确的关系)所以我还在猜测很多事情。

我将包括我正在尝试做的事情,以防它是一个简单的答案,但我宁愿 RTFM,这样我下次可以自己弄清楚:

example.com/hideme/* --> example.com/*(隐藏特定子目录)

4

2 回答 2

1
# security requirement
Options +FollowSymlinks

# turn rewrite engine on
RewriteEngine on

# you only need to do those directives above once per .htaccess

# remap example.com/ w/ or w/o slash in the end into example.com/hideme/
RewriteRule ^/?$ /hideme/

# remap example.com/$group into example.com/hideme/$var
RewriteRule ^(.+)$ /hideme/$1

# redirect example.com/hideme w/ or w/o slash in the end into example.com/
RewriteRule ^hideme/?$ / [R]

# redirect example.com/hideme/$group into example.com/$var
RewriteRule ^hideme/(.+)$ /$1 [R]

实际上,我不知道上面的代码是否有错误,这就是为什么程序员总是测试他们所做的事情,如果它有效,他们就完成了,不需要将他们的代码与其他代码进行比较什么更好。这是我最喜欢的指令之一,我认为最简单:http ://corz.org/serv/tricks/htaccess2.php


附加链接:

http://semlabs.co.uk/journal/mod_rewrite-quick-reference-and-cheat-sheet是我在寻找这种mod_rewrite模式语法、RewriteCond运算符等时经常访问的。

于 2013-04-08T04:40:07.343 回答
0

在 dir 中使用这个 .htaccess$DOCUMENT_ROOT来隐藏 dir _wp

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+_wp/([^\s]+) [NC]
RewriteRule ^ /%1 [R=302,L]

# assuming your cake installation is in /tests
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (?!^tests/)^(.*)$ /_wp/$1 [L,NC]

/_wp这将从URL中删除。

顺便说一句,除了那些有用的谷歌搜索结果之外,还有一本关于 mod_rewrite 的书。

于 2013-04-08T17:51:38.613 回答