开发者

Url redirection in PHP

开发者 https://www.devze.com 2022-12-27 13:23 出处:网络
i am having a url like http://localhost/joomla/Joomla_1.5.7/index.php?option=com_content&view=section&layout=blog&id=3&Itemid=55

i am having a url like http://localhost/joomla/Joomla_1.5.7/index.php?option=com_content&view=section&layout=blog&id=3&Itemid=55

and i want to redirect this to http://localhost/joomla/Joomla1.5/index.php?option=com_content&view=section&layout=blog&id=3&Itemid=55

Not only this redirection but whenever i have开发者_开发技巧 anything next to Joomla_1.5.7/ i am trying to attach that to Joomla1.5 .. How to do this in PHP .... How to identify that the url contains something after Joomla_1.5.7 to get it??

EDIT: ## Can be commented out if causes errors, see notes above. Options +FollowSymLinks

#
  #  mod_rewrite in use

  RewriteEngine On

########## Begin - Rewrite rules to block out some common exploits
   ## If you experience problems on your site block out the operations listed below
   ## This attempts to block the most common type of exploit `attempts` to Joomla!
   #
   # Block out any script trying to set a mosConfig value through the URL
   RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
    # Block out any script trying to base64_encode crap to send via URL
  RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
  # Block out any script that includes a <script> tag in URL
 RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
 # Block out any script trying to set a PHP GLOBALS variable via URL
 RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})

# Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ index.php [F,L] # ########## End - Rewrite rules to block out some common exploits

#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla! Directory (just / for root)

# RewriteBase /


  ########## Begin - Joomla! core SEF Section

# RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/index.php RewriteCond %{REQUEST_URI} (/|.php|.html|.htm|.feed|.pdf|.raw|/[^.])$ [NC] RewriteRule (.) index.php RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] # ########## End - Joomla! core SEF Section

 RewriteEngine on
 RewriteCond %{REQUEST_URI} ^/joomla/Joomla_1\.5\.7/.*
 RewriteRule ^(.*)$ http://%{HTTP_HOST}/joomla/Joomla1.5/$1 [R=301,L]

is the content in my htaccess file but still it showed any changes in my site.


You could do this with an htaccess file like this:

RewriteEngine on
RewriteRule ^joomla/Joomla_1.5.7/(.*?)$ joomla/Joomla1.5/$1 [L,QSA]

But if you absolutely want to achieve it with PHP, put this in the old index.php:

header("Status: 301");
header("Location: http://localhost/joomla/Joomla1.5/index.php".(!empty($_GET) ? '?'.http_build_query($_GET) : ''));
exit;


If you have mod_rewrite, in your .htaccess you can put something along these lines:

RewriteEngine on

RewriteCond %{REQUEST_URI} ^/joomla/Joomla_1\.5\.7/.*
RewriteRule ^(.*)$ http://%{HTTP_HOST}/joomla/Joomla1.5/$1 [L]

Basically, it matches any incoming URL that starts with /joomla/Joomla_1.5.7/ and redirects it to /joomla/Joomla1.5/, with all the extra parameters intact, but the URL won't change in the user's address bar.

If you want the URL to change, you can change the last line to

RewriteRule ^(.*)$ http://%{HTTP_HOST}/joomla/Joomla1.5/$1 [R=301,L]

Hope this is what you're looking for!

0

精彩评论

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

关注公众号