Ссылка для предварительного просмотра поста Wordpress, перенаправляющая на главную страницу.Я хочу остановить это - PullRequest
0 голосов
/ 22 марта 2019

У меня есть веб-сайт laravel и есть папка блога, содержащая блог WordPress.В моем htaccess я хочу какой-то путь, который позволяет открыть иначе перенаправить на дом.Так что моя ссылка на превью поста также перенаправляет на домашнюю страницу.Я хочу остановить это.Ссылка для предварительного просмотра похожа на https://www.test.com/?p=16286. Я хочу перенаправить на определенную страницу.Ниже мой htaccess код

RewriteEngine on
RewriteCond %{REQUEST_URI} !/my-form
RewriteCond %{REQUEST_URI} !/save_subscribe_user
RewriteCond %{REQUEST_URI} !/demo
RewriteCond %{REQUEST_URI} !/xamarin-app-development
RewriteCond %{REQUEST_URI} !/xamarin-app-development-inner
RewriteCond %{REQUEST_URI} !/web-and-mobile-app-development
RewriteCond $1 !^(blog|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ blog/$1 [L,QSA]


## EXPIRES CACHING ##
<FilesMatch "\.(js)$">
    AddHandler application/x-httpd-php .js
</FilesMatch>

## EXPIRES CACHING ##

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    #This line added to allow blog in URL and allow routing through Laravel
    RewriteCond %{REQUEST_URI} !^/blog/    

    #Blog post preview URL
    RewriteCond %{QUERY_STRING} ^p=([0-9]*)
    RewriteRule ^ http://www.test.com/?p=%1&preview=true [R=301,L]
</IfModule>

1 Ответ

0 голосов
/ 22 марта 2019

Эти две строки:

RewriteCond %{QUERY_STRING} ^p=([0-9]*)
RewriteRule ^ http://www.test.com/?p=%1&preview=true [R=301,L]

Строка запроса начинается с числового значения в качестве цели, на которую нужно перенаправить сообщение, поэтому она будет переписываться все больше и больше, и вы можете быть более конкретным, как вы указали в вопросе, добавив $ к ^p=([0-9]*)$ быть отделенным от нового. измените свои правила следующим образом:

RewriteCond %{QUERY_STRING} ^p=([0-9]*)$
RewriteRule ^ http://www.test.com/?p=%1&preview=true [R=301,L]

Если это не нормально, и вам нужно сопоставить эту строку запроса перед тем, как какое-либо правило переписывания, просто поставьте ее перед этим конкретным шагом.

Примечание: очистить кеш браузера и протестировать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...