Could someone help me with a long time problem? Google is crawling a old style and it's messing up my page indexing.
The url is: http://www.mywebsite.com/forum/viewtopic.php?STYLE=54&f=182&t=3587
What I want to do is to remove "style=54".. is this possible? if so could someone help me with the code?
Try adding these rules to your htaccess file in your document root, above any rules you may already have:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^STYLE=[0-9]+&(.*)$
RewriteRule ^(.*)$ /$1?%1 [L,R=301]
This will redirect the browser to the same URI but with the STYLE=### part removed from the query string. So in your example, the browser would then load:
http://www.mywebsite.com/forum/viewtopic.php?f=182&t=3587
Related
I'm trying to modify the subdomain name in the URL to make it look nicer. My current URL look something like:
www.mystore.com/productInfo.php?cPath=11_11&productID=222
So, I want to make it nicer by Rewrite in .htaccess in main with this code:
RewriteEngine On
RewriteRule ^productInfo/([0-9_-]+)/([0-9_-]+) productInfo.php?cPath=$1&productID=$2 [NC,L]
When I run and test it on the URL by typing www.mystore.com/productInfo/11_11/222 in the URL it works well. However, when this page is redirected by a different page or is 'refreshed' with a self redirecting a href= link(in which the link is written in php by the previous programmer), the above old link is still visible in the URL instead of the new one.
I am still a beginner while I suspect that I might need to change something in the cPanel/Apache(I think) for this but currently, I am still do not have access to the cPanel control. Is there anything that I might have missed to write in the .htaccess file or I really do need the cPanel control or any other reasons?
Any help is appreciated. Sorry that I could not find similar questions on this.
You can use the following :
RewriteEngine On
RewriteBase /
#redirect /productInfo.php?cPath=foo&productID=bar to /productInfo/foo/bar
RewriteCond %{THE_REQUEST} /productInfo\.php\?cPath=([0-9_-]+)&productID=([0-9_-]) [NC]
RewriteRule ^ productInfo/%1/%2? [L,R=301]
#rewrite new URL to the old one
RewriteRule ^productInfo/([0-9_-]+)/([0-9_-]+) productInfo.php?cPath=$1&productID=$2 [NC,L]
I've spent the last two hours reading stackoverflow and the apache manual trying to find a solution to this, but haven't found any, if a directory is access (http://domain.ext) I'd like to force index.php to appear in the url (http://domain.ext/index.php) if possible.
If anyone could help I'd really appreciate it, thank you.
RewriteEngine on
RewriteRule index.php
you can use this:
RewriteEngine on
RewriteRule ^$ /index.php?
(but you will not see it in a browser because the rewrite engine just directs to the correct file/directory without changing the url from the browser)
with [R] tag you can redirect the user so the new url would appear in the browser
I've just found what works for me
RewriteEngine On
RewriteRule ^/?$ $1/folder/index.php$2 [R=301,L]
I've taken my site down for some prolonged maintenance and am using mod_rewrite to send all requests to a single page: www.mysite.com/temp/503.php
This is my .htaccess file which works fine.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/temp/503.php [NC]
RewriteRule .* /temp/503.php [R,L]
However, what I'd also like to be able to do is to hide /temp/503.php in the resulting URL from the visitor.
I know this is perhaps trivial and I'm sure fairly simple to achieve, but with my limited mod_rewrite skills I can't seem to get it to work.
Any help would be much appreciated.
Thanks.
Just get rid of the R flag in the rewrite rule, which tells the rule to redirect the request, thus changing the URL in the browser's location bar. So the rule would look like:
RewriteRule .* /temp/503.php [L]
which internally rewrites the requested URI instead of externally telling the browser that it's been moved to a new URL.
I try to remove/redirect the query string from this link:
http://www.myDomain.com/detail/link-526.html?fb_action_ids=10151931158951677&fb_action_types=og.likes&fb_source=aggregation&fb_aggregation_id=288381481237582
To get this link: http://www.myDomain.com/detail/link-526.html
Any help would be highly appreciate, thanks.
Try adding this in the htaccess file in your document root:
RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)fb_action_ids=
RewriteRule ^/?detail/link- %{REQUEST_URI}? [L,R=301]
Note that this redirects the browser if there's facebook query string stuff without any of it, but if the content of your page keeps adding it, the redirecting might loop.
I am using .htaccess file to redirect my archived old aspx urls to my new php site. Now the requirement is as follows:
example.com/showad.aspx?adid=1234 should be example.com/ad/getad/1234
I googled the matter and got the following htaccess rule:
RewriteCond %{QUERY_STRING} ^adid=(\d+)$
RewriteRule ^showad\.aspx$ /ad/getad/%1
The rule works except that the resulting url is example.com/ad/getad/1234?adid=1234
I searched again and learned that to remove the (adid=1234) at the end of the output url you should place a question mark ? at the end of the substitution parameter, so that the rule should be:
RewriteCond %{QUERY_STRING} ^adid=(\d+)$
RewriteRule ^showad\.aspx$ /ad/getad/%1?
But it doesn't work!
The resulting url is STILL having the original query string appended to it. I am using this site to test my htaccess rules: htaccess.madewithlove.be
Any clues why is this happening?
Try changing your rule to
RewriteRule ^showad\.aspx$ /ad/getad/%1? [R=302,L]
Your rule is fine - I just tested it in my own .htaccess. It's the htaccess tester website that's wrong :)