0

これは実際には mod_rewrite の問題ではなく、私の問題です。私の間違いは非常にばかげていると確信していますが、それを解決することはできません。何もしない単純な index.php スクリプトを使用して、Mac OS X Lion に非常に単純な XAMPP インストールをセットアップしました。私はphpでわかりやすいURLを使用する方法を学ぼうとしているだけなので、この形式のURLを受け取った場合

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すると、ページに「オブジェクトが見つかりません!」と表示されます。

どんな助けでも大歓迎です

4

2 に答える 2

0

/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]
于 2013-04-10T04:42:04.707 に答える
0

これを試して、.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>

および run http://localhost/user/delete/7index.phpセット内var_dump($_GET);および結果は次のようになります。

array (size=3)
  'controller' => string 'user' (length=4)
  'action' => string 'delete' (length=6)
  'id' => string '7' (length=1)
于 2013-04-10T01:39:11.333 に答える