У меня есть файл 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]