我在互聯網上搜索關於.htaccess和重寫規則我需要做我的網站。.htaccess和params
我看到的東西我不明白,想知道這意味着什麼
我想知道是什麼2正則表達式,我需要用我的網站我需要使用所有其他人)之間的區別:
RewriteRule ^home$ mainpage.php?id=$1 [QSA]
和
RewriteRule ^home(/)?$ mainpage.php?id=$1 [L]
我看着QSA和L,但什麼(/)
手段?
我在互聯網上搜索關於.htaccess和重寫規則我需要做我的網站。.htaccess和params
我看到的東西我不明白,想知道這意味着什麼
我想知道是什麼2正則表達式,我需要用我的網站我需要使用所有其他人)之間的區別:
RewriteRule ^home$ mainpage.php?id=$1 [QSA]
和
RewriteRule ^home(/)?$ mainpage.php?id=$1 [L]
我看着QSA和L,但什麼(/)
手段?
該表達式將是(/)?
而不是(/)
。它意味着斜線或不在URL上。這兩個網址會去同一個地方:
http://www.domain.com/home/
和
http://www.domain.com/home
所以斜線是可選的。這樣,如果一個機器人或搜索引擎放它,規則將起作用。
可以改寫規則是這樣的:
RewriteRule ^home/?$ mainpage.php?id=$1 [L,QSA]
而且,我看到你說:
其他所有我需要使用
如果您所有的網頁進入中到相同的文件(在這個例子中是mainpage.php),你可以創建一個規則來自動重寫它們,而不是創建10個或15個規則(或更多)。您可以這樣做:
RewriteEngine on
REwriteBase/
RewriteRule ^([a-z0-9\-_]+)/?$ mainpage.php?id=$1 [L,QSA]
此規則將使用字母,數字,短劃線和下劃線作爲頁面。
謝謝你的這個信息和這條規則,我有大約25頁,這是非常有用的 – 2012-01-03 02:37:45
歡迎你 – 2012-01-03 02:38:12
(/)?
表示「可選斜線」。
(/)
創建一個包含/匹配括號之間任何內容的組。在這種情況下,由於它是單個字符,所以括號更多用於捕獲碎片。 (無論比賽將成爲$1
,$2
,等這取決於有多少捕捉組(套括號)有在模式和他們在哪裏。)順便說一句,你的第一個重寫規則不作一大堆的意義 - 因爲沒有組爲$1
提供價值,所以它可能總是空白。在第二種情況下,$1
將爲空或斜線,具體取決於子模式是否匹配。 home
將被重寫爲mainpage.php?id=
,並且home/
將被重寫爲mainpage.php?id=/
。
?
表示「前一個原子的0或1」。(「Atoms」,BTW,是正則表達式的構件)。在這種情況下,由於前面的原子是(/)
(實際上是/
),所以?
的意思是「0或1斜線」。謝謝你的信息 – 2012-01-03 02:37:50
home.php and mainpage.php? – 2012-01-03 02:22:19
哦,對不起,壞的複製和粘貼 – 2012-01-03 02:24:25
'(/)?'用於捕獲example.com/home和example.com/home /'。 – Virendra 2012-01-03 02:30:28