[英]CakePHP 2.4.3 URL-Rewriting module not working
好...
厭倦了這個問題。 所以我想在這里問
為了澄清起見,我確實遵循了Cake PHP文檔。 我用谷歌搜索了將近2個小時,然后猜猜是什么...
我在webroot等中編輯了htaccess文件,其中包括:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] </IfModule>
如本網站另一位海報所推薦
沒運氣。 我是否在這里遺漏了一些特別的東西,例如在我的裝置上散發着神秘的獨角獸般的灰塵?
我知道你是否還需要其他東西
哦,我前段時間做了LAMP安裝
您的指導將不勝感激:)
[編輯]標記從2.4改為2.3,而不是<-我的壞
如果必須啟用mod_rewrite,那么還需要更改默認的Apache設置,以允許.htaccess正確執行。 默認情況下,公共可訪問目錄中的大多數.htaccess規則將被拒絕。
根據您的設置,您應該有這樣的東西...
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
deny from all
</Directory>
在您的apache的配置目錄中找到,可能類似於
/etc/apache2/sites-available/default
請注意,上面的路徑以及上面的Directory標記中的/ var / www /路徑可能有所不同。
您將需要更改一些內容,例如AllowOveride以及下面要匹配的其他一些內容。 檢查差異。
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
更改后,重新啟動apache,希望您會看到.htaccess文件中的規則正在執行。
我認為您缺少/ $ 1部分。
我在webroot中的.htaccess如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>
過去在某些服務器上我也遇到了rewrite和cakePHP的問題,我需要在文件名的開頭添加一個斜杠,如下所示:
RewriteRule ^(.*)$ /index.php?/$1 [QSA,L]
但是我不認為這是您的問題。
/var/www/app/webroot/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
/var/www/app/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
/var/www/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
請使用這些.htaccess文件配置您的應用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.