2017-08-14 15 views
0

以下は私の.htaccessコードです:Apacheのリライトルールは期待通りに動作しない

<VirtualHost *:80> 
     ServerName api.xxxx.com 
     DocumentRoot /dianxiaoer/html/two-twenty 
     <Directory /dianxiaoer/html/two-twenty> 
       RewriteEngine on 
       RewriteCond %{REQUEST_FILENAME} !-f 
       RewriteCond %{REQUEST_FILENAME} !-d 
       RewriteRule . index.php 
       RewriteRule /notify/alipay /mobile/index.php?act=notify&op=alipay 
       #Options Indexes FollowSymLinks MultiViews 
       Options FollowSymLinks 
       AllowOverride None 
       Require all granted 
       Order allow,deny 
       allow from all 
     </Directory> 
</VirtualHost> 

URL書き換え

api.xxxx.com/notify/alipay to api.xxxx.com/mobile/index.php?act=notify&op=alipay 

が正しく動作していないルール。誰も私はここで間違って何を説明してくださいできますか?ありがとう。

+1

どのようなエラーが表示されますか? – CUGreen

+0

コードの9番目の行が機能せず、リダイレクトできません – uzaiHu

+0

おそらく8行目のルールがそれを上書きしている可能性があります – CUGreen

答えて

0

この行、RewriteRule . index.phpは、それ以降のものを上書きします。

これを最後に置くと問題が解決されます。

は次のようにライン8と9を交換してみてください:あなたの問題を解決し

<VirtualHost *:80> 
     ServerName api.xxxx.com 
     DocumentRoot /dianxiaoer/html/two-twenty 
     <Directory /dianxiaoer/html/two-twenty> 
       RewriteEngine on 
       RewriteCond %{REQUEST_FILENAME} !-f 
       RewriteCond %{REQUEST_FILENAME} !-d 
       RewriteRule /notify/alipay /mobile/index.php?act=notify&op=alipay [L] 
       RewriteRule . index.php 
       #Options Indexes FollowSymLinks MultiViews 
       Options FollowSymLinks 
       AllowOverride None 
       Require all granted 
       Order allow,deny 
       allow from all 
     </Directory> 
</VirtualHost> 

うまくいけば。

関連する問題