[英]Issue with mod_rewrite in apache
這實際上不是mod_rewrite的問題,而是我的。 我很確定自己的錯誤很愚蠢,但是我無法解決。 我在Mac OS X Lion上設置了一個非常簡單的XAMPP安裝,使用了一個不執行任何操作的簡單index.php腳本。 我只是想學習如何在php中使用友好的網址,因此,如果我收到了這種格式的網址
http://localhost/project/controller_name/action_name/id
所以,如果我收到了
http://localhost/project/user/delete/7
可以在內部使用這樣的東西
http://localhost/project/index.php?controller=user&action=delete&id=7
我在帶有此內容的項目文件夾上創建了一個.httacess
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /aletta/index.php?controller=$1&action=$2&id=$3 [L]
我檢查了是否啟用了mode_rewrite。 但是不起作用。 我輸入http://localhost/project/user/delete/7
,然后頁面顯示“找不到對象!”
任何幫助將不勝感激
試試這個, .htaccess
文件放在根目錄中:
Options +FollowSymLinks -MultiViews
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# set project dir to RewriteBase
RewriteBase /aletta/
RewriteRule ^([0-9a-zA-Z\-]+?)/([0-9a-zA-Z\-]+?)?/([0-9a-zA-Z\-]+?)?$ index.php?controller=$1&action=$2&id=$3
</IfModule>
並在index.php
運行http://localhost/user/delete/7
,設置var_dump($_GET);
結果將是:
array (size=3)
'controller' => string 'user' (length=4)
'action' => string 'delete' (length=6)
'id' => string '7' (length=1)
如果您想將/ project / $ alphanum1 / $ alphanum2 / $ numeric重映射到/project/index.php?controller=$alphanum1&action=$alphanum2&id=$numeric ,則可以嘗試使用以下配置指令:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^project/([a-z0-9-_]+)/([a-z0-9-_]+)/([0-9]+)/?$ /project/index.php?controller=$1&action=$2&id=$3 [NC]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.