.htaccess и mod_rewrite - PullRequest
       8

.htaccess и mod_rewrite

1 голос
/ 03 марта 2010

Имеется следующее правило mod_rewrite:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME}\.php -f
 RewriteRule ^(.*)$ $1.php
 RewriteRule ^index\.php$ / [R=301,L]
</IfModule>

Который удаляет .php из любого из моих URL.

Однако, если я попытаюсь указать 301 перенаправление на страницу, которая уже существует как таковая:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME}\.php -f
 RewriteRule ^(.*)$ $1.php
 RewriteRule ^index\.php$ / [R=301,L]
 RewriteRule ^something-page\.php$ /something-page [R=301,L]
</IfModule>

Сервер не может разрешить домен.

Я думаю, что, кажется, поставил себя в рекурсивный цикл.

Любая помощь большая приветствуется!

1 Ответ

0 голосов
/ 03 марта 2010
RewriteRule ^(.*)$ $1.php

Это перенаправит "/thing-page" в "/soemthing-page.php", что, в свою очередь, приведет к следующему:

RewriteRule ^something-page\.php$ /something-page [R=301,L]

Поместите правило страницы-страницы над общим правилом переписывания .php и отметьте его [L].

...