簡體   English   中英

codeigniter .htaccess網址問題

[英]codeigniter .htaccess url issue

我想這樣做:(首先,ci是我的codeigniter文件夾)
如果用戶致電ci / 2012.htm,我想重定向ci / oyna / oyun / 2012.htm,我正在嘗試使用它,但它沒有運行。

    RewriteEngine on
    RewriteCond $1 !^(index\.php|resources|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
    RewriteRule ^(.*)$ index.php/oyna/oyun/$1 [L,QSA]

當我致電ci / 2012.htm時,它返回未找到codeigniter 404頁面。

第一; 您有兩個重寫器,它們與您要進行的重寫沖突;

RewriteRule ^(.*)$ index.php/$1 [L,QSA]
RewriteRule ^(.*)$ index.php/oyna/oyun/$1 [L,QSA]

L標志表示如果某個規則匹配,則不會使用下一個規則。 由於2012.htm匹配第一個規則(兩個規則都匹配所有規則),它將被重寫為index.php/2012.htm並在那里停止,甚至沒有進行oyna / oyun重寫。

解決方案是交換規則,並使.htm重寫更具體,以便僅重寫.htm文件。 將規則更改為;

RewriteRule ^(.*\.htm)$ index.php/oyna/oyun/$1 [L,QSA]

應該更好地工作。

將最有選擇性的規則放在第一位之后,結果應類似於(未經測試,此處沒有Apache)

編輯:添加了缺少的RewriteCond,每個RewriteRule需要一個

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*\.htm)$ index.php/oyna/oyun/$1 [L,QSA]
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

暫無
暫無

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

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