开发者

Need a Mod rewrite regex solution for .htaccess

开发者 https://www.devze.com 2023-01-18 11:46 出处:网络
I moved my site to different server since then my all urls started showing up 404开发者_C百科 error.

I moved my site to different server since then my all urls started showing up 404开发者_C百科 error.

earlier my all urls were like this mysite.com/title-of-url

but now all such urls are getting 404 error, so i disabled seo friendly url feature on site admin and now i can access same page on mysite.com/index.php/title-of-url

i tired to create some regex for .htaccess to do purpose like RewriteRule ^([^/.]+)/?$ /index.php/$1 [L]

but its working fine one depth of "/", i mean its working for mysite.com/first but not for mysite.com/first/second

I am looking for REGEX help regardng it so that mysite.com/first/second should gets rewritten to mysite.com/index.php/first/second as well as mysite.com/something gets rewritten to mysite.com/index.php/something..

looking forward for your kind help Thanks


Of course it doesn't work with more /. Your rule says:

  • Match from beginning: ^
  • (start grouping for $1: ()
  • Match everything except the slash: [^/]+
  • (end grouping: ))
  • Match an optional leading slash /?
  • Match to the end $

If you really want to match everything, use a dot instead of a character class, matching everything except the /:

RewriteRule ^(.+?)/?$ /index.php/$1 [L]

Do not forget to include a RewriteCond before it excluding existing files and directories, to avoid an infinite recursion. Fail to do this, and you'll end up with a 500 Internal Server Error. Complete code:

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

精彩评论

暂无评论...
验证码 换一张
取 消