2

私は Mac OSX Lion とネイティブ apache を使用しています。php5 をインストールすると、書き換えエンジンが動作しますが、まだ問題があり、この問題は説明よりもよく示されているため、以下の 2 つのルールがあり、1 つが機能し、もう 1 つが機能しません。

RewriteRule ^imovel/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/$ /imovel.php?imovel=$1

このルールは機能せず、ファイル imovel.php に移動しますが、変数を渡さないため、この ^imovel/ を ^blerg/ のような別のものに変更すると、以下のようにうまく機能します

RewriteRule ^blerg/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/([a-z_A-Z0-9_-]+)/$ /imovel.php?imovel=$1

このルールは正常に機能しますが、この問題は私が使用している Mac でのみ発生します。Windows 7 でこれらと同じルールを使用すると、問題なく動作します。これを変更するためにApacheで行う必要がある構成はありますか?

4

2 に答える 2

0

サイトにはMultiViews有効化が必要です。その場合、/imovel.php入力することでロードされる/imovelため、/imovel.phpコードを書き換えるのではなく、ロードされます。しかし、MultiViewsあなたを削除すると、この問題は解消されます。

これを修正するために、ターミナルを使用して、httpd.confファイルの下にあるファイルに数行のコードを追加する必要がありました。vhost.confuser.conf<Directory "/Users/User/Sites">

sudo nano /etc/apache2/httpd.conf
sudo nano /etc/apache2/users/user.conf
sudo nano /private/etc/apache2/extra/httpd-vhosts.conf

ライオンでこれらのファイルを見つける場所がわかりませんが、mac osx maverick では/etc/apache2/.から削除する必要MultiViewsがありましたoptions/Users/User/Sitesは自分のフォルダーなので無視して、自分のサイト フォルダーを探します。

<Directory "/Users/User/Sites">
    Options Indexes FollowSymLinks SymLinksifOwnerMatch MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

だから今はこんな感じ

<Directory "/Users/User/Sites">
    Options Indexes FollowSymLinks SymLinksifOwnerMatch
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

これを行うと、/index.php と入力しても /index.php ページをロードできなくなります。したがって、.htaccess ファイルで最初に使用したコードを使用できます。そしてすべては楽園で解決されます。

それが役立つかどうか教えてください。

于 2013-12-07T09:50:40.003 に答える
0

この質問から:

インストールしてい mod_negotiation ますか?もしそうなら、それはあなたのリクエストを受け取り、あなたが本当に送信するつもりだったファイルを見つけようとします. 設定していないことを確認してください Options MultiViews。だから、.htaccessプットでOptions -MultiViews

于 2013-02-05T16:18:56.307 に答える