Назад | Перейти на главную страницу

Превратите… /? Token = xx-xxx в… / xx-xxx

У меня есть файл htaccess, который удаляет index.php (codeigniter). У меня проблема с Paypal, потому что URL-адрес возврата использует строки запроса, которые вызывают проблемы в codeigniter.

Это мой htaccess-файл:

RewriteEngine on
RewriteBase /

# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

Я хочу переписать следующие URL-адреса примеров:

http://.../site/bookingconfirmed/?token=EC-56G61173NH540131H

к

http://.../site/bookingconfirmed/EC-56G61173NH540131H

и

http://.../site/bookingdeclined/?token=EC-56G61173NH540131H

к

http//.../site/bookingdeclined/EC-56G61173NH540131H

Есть хорошие идеи, как это сделать?

Что-то вроде этого:

RewriteCond %{QUERY_STRING} token=([^&]+) [NC]
RewriteRule ^(site/booking.*)/?$ $1/%1? [L]

Это обеспечит наличие и конечной косой черты, поэтому запрос /site/bookingconfirmed?token=EC-56G61173NH540131H тоже будет работать. И он выбрасывает строку запроса - я полагаю, там больше ничего не нужно хранить?

Примерно так .. очень непроверенный

RewriteEngine on
RewriteBase /

# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]

RewriteRule ^site/(bookingconfirmed|bookingdeclined)/\?token\=(.*)$ /site/$1/$2 [R=301,L]

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