2

うまくいかないエリアの mod 書き換えルールに問題があります :) 私はプロジェクト サイトを持っていますが、魔女は単なる ajax リターン サイトです。したがって、sitename.com/my-test/project/test.html で自分のサイトを開くのが好きで、sitename.com/my-test/project.html?index=test に書き換えます。書き直した後、cmsの書き換えルールが彼の仕事にならなければならないことを私は知っています。おそらくこれが問題であり、それらが交差またはクラッシュするかどうかはわかりません。

ブラウザ経由で URL を参照すると、すべて正常に動作しますが、書き換えルールだけが機能せず、完全に夢中になり、問題を見つけることができません。

だから誰かが私を助けてくれることを願っています。

.htaccess の REWRITE CONFIG

    RewriteEngine On
    RewriteBase /

    #### WOULD NOT WORK ######
    # REWRITE AJAX PROJEKT
    RewriteCond %{REQUEST_URI}% ^my-test/projects/[a-zA-Z0-9]+\.html$ [NC]
    RewriteRule ^my-test/projects/[a-zA-Z0-9]+\.html my-test/projects.html?index=$1

    ### WORK CORRECTLY ####
    # REWRITE RULE FOR SEO FRIENDLY IMAGE MANAGER URLS
    RewriteRule ^files[0-9]*/imagetypes/([^/]*)/([^/]*) index.php?rex_img_type=$1&rex_img_file=$2

    # DON'T REWRITE IF REAL FILE, FOLDER OR SYMLINK EXISTS
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

    # EXCLUDE SPECIFIC FOLDERS FROM REWRITE ENGINE
    RewriteCond %{REQUEST_URI} !/files[0-9]*/
    RewriteCond %{REQUEST_URI} !/assets/.*
    RewriteCond %{REQUEST_URI} !/media/.*
    RewriteCond %{REQUEST_URI} !/redaxo/.*

    # REWRITE ALL OTHER REQUESTS TO INDEX.PHP
    RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]

そして私もテストしました

    RewriteCond %{REQUEST_URI}% ^/my-test/projects/[a-zA-Z0-9]+\.html$ [NC]
    RewriteRule ^/my-test/projects/[a-zA-Z0-9]+\.html my-test/projects.html?index=$1
    #OR JUST
    RewriteRule ^/my-test/projects/[a-zA-Z0-9]+\.html$ my-test/projects.html?index=$1
    #OR
    RewriteRule ^/my-test/projects/(.*)$ my-test/projects.html?index=$1
    #AND CORRECT
    RewriteCond %{REQUEST_URI} ^/my-test/projects/[a-zA-Z0-9]+\.html$ [NC]
    RewriteRule ^/my-test/projects/[a-zA-Z0-9]+\.html my-test/projects.html?index=$1
    #AND ---
    RewriteRule ^my-test/projects/([a-zA-Z0-9]+)\.html my-test/projects.html?index=$1 [L]
    

答えが見つからないので、誰かが私を助けてくれることを本当に願っています

皆さん、ありがとうございました

NGモックス

4

1 に答える 1

0
RewriteCond %{REQUEST_URI}% ^my-test/projects/[a-zA-Z0-9]+\.html$ [NC]
RewriteRule ^my-test/projects/[a-zA-Z0-9]+\.html my-test/projects.html?index=$1

%条件の最後に余分なものがあります: %{REQUEST_URI}%. つまり、リクエスト URI の後に が続く必要があり%、右側のテキストは で終わりますhtml。これは、この条件が常に失敗することを意味します。

さらに、%{REQUEST_URI}変数は .で始まります/。書き換えルールのパターンに一致させるために使用すると、先頭のスラッシュがなくなることに注意してください。

実際には、条件はまったく必要ありません。

RewriteRule ^my-test/projects/([a-zA-Z0-9]+)\.html my-test/projects.html?index=$1 [L]
于 2013-09-04T21:36:07.990 に答える