簡體   English   中英

URL的codeigniter重寫不起作用

[英]codeigniter rewriting of URLS not working

過去,我的工作完全沒有問題,但是由於某種原因,在新服務器上我無法正常工作。

我的應用程序的根目錄中有以下.htaccess文件

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

我還啟用了mod_rewrite並已通過php_info()確認了這一點

我的網站位於/ var / www / html / test

盡管啟用了mod_rewrite,但它是否可能無法工作?如果可以,我如何對其進行測試?

在某些服務器實現中,您需要將其包裝在<IfModule>標記內。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

還要檢查您的httpd.conf文件,以確保它具有:

Options FollowSymLinks
AllowOverride All

確保.htaccess文件沒有被另一個.htaccess文件覆蓋也值得檢查。

一種簡單的方法來測試.htaccess是否正常工作

只需將以下內容放入.htaccess文件中:

deny from All

這就是拒絕所有人訪問您的網站。 如果您在嘗試訪問該站點時出現403禁止訪問-則包含.htaccess文件。 如果不是,請參閱上文。

我在我的codeigniter設置上使用它

RewriteEngine on
# prevent these directories from hitting CI
RewriteCond $1 !^(index\.php|images|assets|robots\.txt|crossdomain\.xml)
# route everything else to the index.php
RewriteRule ^/(.*)$ /index.php/$1 [QSA]

(我的設置是在.conf的虛擬主機中完成的,而不是在.htaccess中完成的,盡管它們通常是相同的配置)

暫無
暫無

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

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