У меня в основной папке установлен 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
).
Что я здесь делаю не так?
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"
Он предоставит вам желаемые данные, и ваша проблема будет решена. Дайте мне знать, если это сработает для вас.
Чуть ниже 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
- вы можете безопасно удалить его.
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.