1

このサイトで無限ループが発生しています-http://www.salesmelbourne.com

以下は.htaccessであり、問​​題は最後の4行にあることを私は知っています-まあ私はそう思います-いくつかのアドバイスを提供できます... thx

 php_value session.gc_maxlifetime 259200
 php_flag register_globals off
 php_flag zlib.output_compression on
 php_flag output_compression_level 6

 <Files *>
 Header set Cache-Control: "private, pre-check=0, post-check=0, max-age=0"
 Header set Expires: 0
 Header set Pragma: no-cache
 </Files>

 # File Upload 25MB
 php_value post_max_size 20M
 php_value upload_max_filesize 20M
 php_value max_execution_time 1000

 # use utf-8 encoding for anything served text/plain or text/html
 AddDefaultCharset utf-8

 # force utf-8 for a number of file formats
 AddCharset utf-8 .html .css .js .xml .json .rss .php
 RewriteEngine on
 RewriteCond %{HTTP_HOST} !^www\. [NC]
 RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

 # Internally redirect all pages to index.php
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^/ajax/pages/(.*)$ /www/ajax/pages/404_error.php [R=301]
 RewriteRule . index.php [L]
4

1 に答える 1

1
# Internally redirect all pages to index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/ajax/pages/(.*)$ /www/ajax/pages/404_error.php [R=301]
RewriteRule . index.php [L]

(最後から)2行目は何をしますか?RewriteRuleのURLパターンは先頭にスラッシュがないため、とにかく機能することは想定されていませんが、そこにあります(^/ajax/pages/(.*)$)。

その特定のルールがどのように機能すると予想されるかわからないので、2つの可能な解決策があります(両方とも機能します-それはすべて前述の行に関するものです-正しく機能するためにこれらの2つの条件が必要ですか?):

# I have no idea how this rule is supposed to work, but assume it's the way to go
RewriteRule ^ajax/pages/(.*)$ /www/ajax/pages/404_error.php [R=301]

# Internally redirect all pages to index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

またはこのように(それらの条件がそのルールにとって重要である場合)

# I have no idea how this rule is supposed to work, but assume it's the way to go
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ajax/pages/(.*)$ /www/ajax/pages/404_error.php [R=301]

# Internally redirect all pages to index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
于 2012-06-02T08:11:20.433 に答える