簡體   English   中英

如何在.htaccess文件中使用mod_rewrite重寫URL

[英]How to rewrite URLs using mod_rewrite in .htaccess files

是否有關於如何使用mod_rewrite更改URL的良好清晰的參考?

我正在嘗試進行基本的URL重寫,當我嘗試找出它時,我發現許多人對此感到困惑,並遇到了很多隨機的例子,但是沒有一個單一的資源可以解釋它的工作原理以及所有選項等等。有時候我很幸運,找到了與我想做的事情類似的東西,但是常常有很多不同的版本。 有時他們都工作。 有時他們都不做。 所以這是一個猜謎游戲。

我找到了apache mod_rewrite文檔,但讀起來像便宜的立體聲指令。 (只是一堆細節和沒有明顯關系的示例)所以我仍然在猜測很多事情。

我將列出我想做的事情,以防萬一這是一個簡單的答案,但我希望使用RTFM,以便下次可以自己弄清楚:

example.com/hideme/*-> example.com / *(隱藏特定的子目錄)

# 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


附加鏈接:

當我在尋找這樣的mod_rewrite模式語法, RewriteCond運算符等內容時,經常會訪問http://semlabs.co.uk/journal/mod_rewrite-quick-reference-and-cheat-sheet

$DOCUMENT_ROOT目錄中使用此.htaccess隱藏目錄_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]

這將從URL中刪除/_wp

順便說一句除了那些有用的Google搜索結果之外,還有一本關於mod_rewrite的書

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM