podhy
podhy

Reputation: 23

Redirect and rewrite

I'm not sure if it is possible but I want rewrite old URLs to new style and if someone will access the old URL i want to 301 redirect him to new URL style

OLD URL: /catalogue/category/some-category-page

NEW URL: /some-category-page/category

Also what I need is to pass REQUEST_URI to PHP script

I've got something like this but its not working (recursion):

RewriteEngine On

RewriteRule ^catalogue/category/(.+)$ /$1/category [R=301,L] # this is bad I know
RewriteRule ^(.+)/category?$ /catalogue/category/$1 [P]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php?modrewrited=%{REQUEST_URI} [QSA,L]

Thank you for help.

Upvotes: 0

Views: 24

Answers (1)

Jon Lin
Jon Lin

Reputation: 143856

If your PHP script needs to read from $_SERVER['REQUEST_URI'], the you need to make sure mod_proxy is loaded. Except that causes a redirect loop. You need to have your first rule which redirects check the actual request variable. So instead of:

RewriteRule ^catalogue/category/(.+)$ /$1/category [R=301,L] # this is bad I know

you want:

RewriteCond %{THE_REQUEST} \ /+catalogue/category/([^\ \?]+)
RewriteRule ^ /%1/category [L,R=301]

Upvotes: 1

Related Questions