2015-06-26 4 views
1

Я создаю страницу конфигурации Pebble Watchface на своем веб-сайте, и автоматически созданный URL-адрес этой страницы из Cloud Pebble заканчивается на% 3F:Пытается использовать правило htaccess для исправления% 3F в строке запроса на моем сайте

http://andr01dm.com/pebble/faciem/config.html?return_to=https%3A//cloudpebble.net/ide/emulator/config%3F 

Но этот URL-адрес вызывает ошибку 501 Method Not Implemented на моем сайте. Я обнаружил, что если вручную удалить% 3F из строки запроса, он будет работать так, как ожидалось.

Я думал об использовании правила HTAccess, чтобы изменить URL, чтобы что-то вроде этого:

http://andr01dm.com/pebble/faciem/config.html?return_to=cloud 

я написал правило, которое работает в инструменте сайта, что я проверяю его в (http://htaccess.madewithlove.be/), но он не работает на моем сайте. Можете ли вы взглянуть на мое правило и сообщить мне, если оно выглядит правильно?

RewriteCond %{QUERY_STRING} ^return_to=https://cloudpebble\.net/ide/emulator/config\?$ 
RewriteRule config.html config.html?return_to=cloud [R=301,L] 

На моем веб-сайте работает Apache и ModX Revolution CMS. Спасибо.

Edit: Вот полный .htaccess с моего сайта (минус комментарии)

AddHandler application/x-httpd-php52 .php .php5 .php4 .php3 

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} . 
RewriteCond %{HTTP_HOST} !^andr01dm\.com [NC] 
RewriteRule (.*) http://^andr01dm.com/$1 [R=301,NE,L] 

RewriteCond %{QUERY_STRING} ^return_to=https://cloudpebble\.net/ide/emulator/config\?$ 
RewriteRule config.html config.html?return_to=cloud [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
+0

ты написал это (RewriteEngine On) – Softbazz

+0

Да, Я включил механизм перезаписи. Вот полный (минус комментарии) Htaccess для моего сайта: 'AddHandler применение/х-HTTPD-php52 .php .php5 .php4 .php3 RewriteEngine На RewriteBase/ RewriteCond% {HTTP_HOST}. RewriteCond% {HTTP_HOST}^andr01dm \ .com [NC] RewriteRule HTTP! (*.): //^andr01dm.com/$1 [R = 301, NE, L] RewriteCond% {QUERY_STRING}^= return_to https:?! // cloudpebble \ .net/IDE/эмулятор/Config \ $ RewriteRule config.html config.html return_to = облако [R = 301, L] RewriteCond% {REQUEST_FILENAME} -f RewriteCond% { REQUEST_FILENAME}! -d RewriteRule^(. *) $ Index.php? Q = $ 1 [L, QSA] ' –

ответ

0

Этот Подход работает для меня:

# === remove extra question mark === 
RewriteCond %{QUERY_STRING} ^(.*)%3F$ [NC] 
RewriteRule .* %{REQUEST_URI}?%1 [R,L]