У меня в основной папке установлен WordPress, поэтому мой сайт выглядит как

www.example.com

Кроме того, у меня есть подпапка с отдельным статическим сайтом, к которому вы можете получить доступ с помощью

www.example.com/special

Итак, на специальных страницах у меня есть страница с названием

www.example.com/special/my-special-page

На самом деле это файл .php, но я удалил расширения в файле .htaccess этого специального сайта с помощью этого

RewriteEngine On    # Turn on the rewriting engine

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

И это работает.

Но мой клиент сказал: я хочу, когда я войду

www.example.com/myawardspage

Идти в

www.example.com/special/my-special-page

Но иметь в нем указанный выше URL (без /special/my-special-page). Итак, в главный файл .htaccess (тот, который управляет WordPress) я добавил

RewriteRule ^myawardspage?$ http://www.example.com/special/my-special-page [NC,L]

Итак, теперь, когда вы идете в

www.example.com/myawardspage

Я перенаправлен на

www.example.com/special/my-special-page

И это здорово, но мне нужно, чтобы URL-адрес выглядел как

www.example.com/myawardspage

Итак, в файле .htaccess специальной страницы я добавил

RewriteRule ^myawardspage/?$ /special/my-special-page [NC]

Но URL остается прежним (http://www.example.com/special/my-special-page).

Что я здесь делаю не так?

0
dingo_d 2 Май 2016 в 10:07

2 ответа

Лучший ответ

Итак, вы имеете в виду, когда когда-либо вы хотите нажать www.example.com/myawardspage, вы хотите получить данные из www.example.com/special/my-special-page, в то время как в вашей адресной строке ваш адрес остается www.example.com/myawardspage. Для этого примените это правило в своем < strong> установочный файл WordPress .htaccess.

RewriteRule    ^myawardspage/?$    www.example.com/special/my-special-page    [NC,L]    # Handle requests for "www.example.com/special/my-special-page"

Он предоставит вам желаемые данные, и ваша проблема будет решена. Дайте мне знать, если это сработает для вас.

0
laraib 2 Май 2016 в 08:55

Чуть ниже RewriteEngine on поместите следующие строки в файл /.htaccess (корень документа):

# Check if the file being requested exists
# in the 'special' directory
RewriteCond %{DOCUMENT_ROOT}/special/$1.php -f

# If so, then rewrite accordingly:
RewriteRule ^([^.]+) special/$1.php [L]

Использование этого метода означает, что вам не нужно это правило в файле special/.htaccess - вы можете безопасно удалить его.

1
Mike Rockétt 2 Май 2016 в 07:20