1
我想創建一些重寫規則,以簡短易讀的方式通過URL按日期組織內容。.htaccess日期重寫,即/ 2012/12/31
即
http://mysite.com/post/index.php?a=Dave&b=2012&c=12&d=31&e=1
http://mysite.com/post/index.php?a=Dave&b=2012&c=12&d=31
http://mysite.com/post/index.php?a=Dave&b=2012&c=12
http://mysite.com/post/index.php?a=Dave&b=2012
http://mysite.com/post/index.php?a=Dave&b=all
成爲
http://mysite.com/post/Dave/2012/12/31/1
http://mysite.com/post/Dave/2012/12/31
http://mysite.com/post/Dave/2012/12
http://mysite.com/post/Dave/2012
http://mysite.com/post/Dave/all
這是我的.htaccess在//mysite.com/post/
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9]+)/?([0-9]+)/?([0-9]+)/?([0-9]+)?$ index.php?a=$1&b=$2&c=$3&d=$4&e=$5 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9]+)/?([0-9]+)/?([0-9]+)/?([0-9]+)/?$ index.php?a=$1&b=$2&c=$3&d=$4&e=$5 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9]+)/?([0-9]+)/?([0-9]+)?$ index.php?a=$1&b=$2&c=$3&d=$4 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9]+)/?([0-9]+)/?([0-9]+)/?$ index.php?a=$1&b=$2&c=$3&d=$4 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9]+)/?([0-9]+)?$ index.php?a=$1&b=$2&c=$3 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9]+)/?([0-9]+)/?$ index.php?a=$1&b=$2&c=$3 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9]+)?$ index.php?a=$1&b=$2 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9]+)/?$ index.php?a=$1&b=$2 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?a=$1 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?a=$1 [L,NC,QSA]
現在的問題是一些網址無效。從上面的例子來看,其中三個按預期工作。但輸出別人在以下方面:
URL: http://mysite.com/post/Dave/2012/12
OUTPUTS:
a => Dave
b => 2012
c => 1
d => 2
URL: http://mysite.com/post/Dave/2012
OUTPUTS:
a => Dave
b => 20
c => 1
d => 2
而這顯然是不正確的價值觀,顯然是分手了跨越其他變量的數目。
爲什麼要這樣做,我該怎麼辦才能解決這個問題?
因此,這也意味着我不需要加倍所有的重寫規則爲一個主要的斜槓?該解決方案奇妙地工作,並已解決了其他類似的問題,謝謝! – Felixpitau
開頭的斜槓會是一個斜線,所以我認爲你的意思是一個斜線。是的,這正是你使用'?'的原因。似乎你在所有錯誤的地方使用它們,沒有一個是正確的;) – 2012-12-31 19:17:03
是的,尾隨斜線。我找到了一個他們正在使用它的頁面,我認爲這是與變量和模式匹配的地方有關的,這在回想起來似乎很荒謬。 – Felixpitau