Правила перезаписи .htaccess работают в подпапке, но не в основной - PullRequest
0 голосов
/ 04 февраля 2011

У меня есть несколько rewriterules, которые работают в папке внутри основного например: основная папка / я положил htaccess внутрь /

это .htaccess

Options +FollowSymlinks
RewriteBase /
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^about/(.*)/$ $1.php [L]
RewriteRule ^(.*)/download/(.*)/(.*)/(.*)/$ download-donate.php?product=$1&version=$2&os=$3&method=$4 [L]
RewriteRule ^(.*)/download/(.*)/$ download.php?product=$1&version=$2 [L]
RewriteRule ^subscribe/(.*)/$ subscribe-$1.php [L]
RewriteRule ^subscribe/(.*)/(.*)/$ subscribe-$1.php?email=$2 [L]
RewriteRule ^(.*)/screenshots/$ screenshots.php?product=$1 [L]
RewriteRule ^(.*)/(.*)/$ products.php?product=$1&page=$2 [L]
RewriteRule ^schedule-manager/$ products.php?product=schedule-manager&page=view [L]
RewriteRule ^visual-command-line/$ products.php?product=visual-command-line&page=view [L]
RewriteRule ^windows-hider/$ products.php?product=windows-hider&page=view [L]
RewriteRule ^(.*)/$ $1.php [L]

это не работает в главной папке. если я поставлю один и тот же htaccess (изменив RewriteBase на / test /) и положу его в папку с именем "test"> / test /, то она будет работать идеально - и в основной, и в тестовой папках будут одинаковые файлы!

Спасибо

Ответы [ 2 ]

2 голосов
/ 04 февраля 2011

Если вашей хостинговой компанией является GoDaddy, добавьте

Options -MultiViews

над

Options +FollowSymlinks
0 голосов
/ 04 февраля 2011

Попробуйте изменить порядок этих двух параметров:

RewriteEngine On
RewriteBase /

Не уверен, что это что-то сделает, но в этом есть смысл.

edit

Предполагается, что у вас есть код поверх / test / folder.

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^about/(.*)/$ test/$1.php [L]
RewriteRule ^(.*)/download/(.*)/(.*)/(.*)/$ test/download-donate.php?product=$1&version=$2&os=$3&method=$4 [L]
RewriteRule ^(.*)/download/(.*)/$ test/download.php?product=$1&version=$2 [L]
RewriteRule ^subscribe/(.*)/$ test/subscribe-$1.php [L]
RewriteRule ^subscribe/(.*)/(.*)/$ test/subscribe-$1.php?email=$2 [L]
RewriteRule ^(.*)/screenshots/$ test/screenshots.php?product=$1 [L]
RewriteRule ^(.*)/(.*)/$ test/products.php?product=$1&page=$2 [L]
RewriteRule ^schedule-manager/$ test/products.php?product=schedule-manager&page=view [L]
RewriteRule ^visual-command-line/$ test/products.php?product=visual-command-line&page=view [L]
RewriteRule ^windows-hider/$ test/products.php?product=windows-hider&page=view [L]
RewriteRule ^(.*)/$ test/$1.php [L]
...