1

.htacess にいくつかの書き換えを設定しました。現在、すべてのファイルが /core/index.php を指すように設定されていますが、これで問題ありません。

svn:external を使用して、コア ファイルと機能をプロジェクトにチェックアウトします。ここで、機能と同じ名前のディレクトリがある場合に問題が発生します。たとえば、「プロパティ」を「プロパティ」というフォルダーにチェックアウトします。ファイルが存在する場合は無視して上記と同じ動作を使用するようにルールを追加しましたが、/property を試すと URLが/property/?url=propertyに変更されます が、/property/を実行するとそのままになります私が求めているものです。

私はもうすぐそこにいますが、/?url=property を表示しない方法がわかりません。URL に / after プロパティがない場合 (またはファイルが存在する場合) ( /property/ )。

ここに私の .htaccess があります - この書き直しは私にとって新しい基盤であり、これは正しくないかもしれません。基本的に以下に2つのルールがあります。最初は存在しないすべてのファイル用で、2番目は存在するファイル用ですが、無視して最初のルールと同じ動作を使用したいと思います。

   #re-write for file that don't exist
    <IfModule mod_rewrite.c>
      RewriteEngine On

      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-l

      RewriteRule ^(.*)$ /core/index.php?url=$1 [L]
    </IfModule>

    #re-write for file that do exist
    <IfModule mod_rewrite.c>
      RewriteEngine On

      RewriteCond %{REQUEST_FILENAME} -d
      RewriteRule ^(.*)$ /core/index.php?url=$1 [L]

    </IfModule>        
4

1 に答える 1

0

.htaccess の上に次の行を追加してみてください:

 DirectorySlash On

 ## Adding a trailing slash
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_URI} !/$
 RewriteRule . %{REQUEST_URI}/ [L,R=301]

リクエストがディレクトリに対するものである場合、これにより常にスラッシュが追加され、この問題を回避できます。

于 2013-11-02T15:02:53.917 に答える