4

アプリケーションのルーティング目的で Silex の「マイクロフレームワーク」を使用しています。私は現在、URLを.htaccessで書き換える方法にこだわっています。

標準サイレックス URL:localhost/myapp/web/index.php/hello/name

私はそれが次のようになりたい:localhost/myapp/hello/name

次の .htaccess コードを使用すると、その/index.php/部分を省略できます。しかし、私はまだ/web/部品を使用する必要があります。

RewriteEngine On
RewriteCond %{THE_REQUEST} /myapp/web/index.php/
RewriteRule ^/myapp/web/index.php/(.*) /myapp/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !/myapp/web/index.php/
RewriteRule ^(.*)$ /myapp/web/index.php/$1 [L]

助言がありますか?ありがとう!

4

4 に答える 4

1

から: http://silex.sensiolabs.org/doc/web_servers.html

<IfModule mod_rewrite.c>
    Options -MultiViews    
    RewriteEngine On
    RewriteBase /web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [QSA,L]
</IfModule>

権利は、に設定するDocumentRootこと/path/to/your/app/webです。

于 2013-10-28T02:16:33.527 に答える
0

私は同様の問題を抱えていましたが、次の方法で解決しました

<IfModule mod_rewrite.c>
 Options -MultiViews
 RewriteEngine On
 RewriteBase /web
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)? index.php/$1 [QSA,L]
 RewriteRule ^/?$ /web/ [R=301]
</IfModule>
于 2014-07-23T08:56:13.013 に答える
0

このような何かがうまくいくはずです:

RewriteEngine On
RewriteBase /

RewriteRule ^myapp/web/index.php/  /myapp/                 [R=301,L]
RewriteRule ^myapp/                /myapp/web/index.php/   [L]
于 2013-03-17T21:03:57.157 に答える