簡體   English   中英

Apache中的mod_rewrite問題

[英]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.

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