RewriteRule with GET data?
Hi,
I have the following RewriteRule:
RewriteRule ^(.*).xt$ index.php?first=$1
URL:
http://localhost/htaccess_test/main/...xt?second=test
Then my $_GET is:
Array
(
[first] => main/news/index
)
How could I change my RewriteRule that I get the $_GET var "second" too like this:
$_GET:
Array
(
[first] => main/news/index
[second] => test
)
Thanks
Soda
Try adding [NC,QSA,L] to the end of your rule:
RewriteRule ^(.*).xt$ index.php?first=$1 [NC,QSA,L]
That should pass any variable you have in your address then.
Fine, now it works. Thank you!
Now i played a little bit around with RewriteRules and have another question.
My .htaccess:
Code:
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^(.*)$ index.php?action=$1 [NC,QSA,L]
With the call
http://localhost/one/two/three?gray=true&black=false
I get:
Code:
Array
(
[action] => one/two/three
[gray] => true
[black] => false
)
But now i have the problem that my
<link rel="Stylesheet" type="text/css" href="css/my.css" media="screen" />
is not interpreted and my pagestyle is broken.
What's wrong? I thought RewriteCond %{REQUEST_URI} !-d is the right condition for "if the %{REQUEST_URI} is a real directory (like css/my.css), don't do the RewriteRule"!?
How should i change my .htacces that it works.
Greetings,
Soda
Try:
Code:
RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^ - [L]
Before the:
Code:
RewriteRule ^(.*)$ index.php?action=$1 [NC,QSA,L]
That should prevent the address being re-written if the file actually exists.
Last edited by thraddash; 08-14-2009 at 03:41 PM .
Thank you for your answer.
This works for
http://localhost/index.php
but if I have a directory structure like this
http://localhost/one/two/three?gray=true&black=false
the css file is ignored again
What i like to do is:
I have the domain
http://domain.tdl/
and the navigation works with a path structure
e.g.
http://domain.tdl/en/news (the news mainpage in english)
http://domain.tdl/en/news/today (the news from today, in english)
http://domain.tdl/de/news/today (the news from today, in german)
http://domain.tdl/en/search (the search sides)
and so on
The Problem is, that /css/my.css and /images/test.jpg etc. are real dirs and files on the server
How could i solve this? My first idea was with mod_rewrite.
I believe what I have given you is your answer as I use a very similar method for my own framework:
Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^ - [L]
RewriteRule ^(.*)$ /index.php?action=$1 [NC,QSA,L]
I think your real problem is the location of your css files as you are using a "relative" path by not specifying / before the filename, eg:
Code:
<link rel="Stylesheet" type="text/css" href="/css/my.css" media="screen" />
That would tell all the pages including that stylesheet to look from the root.
Does that help at all?
Last edited by thraddash; 08-14-2009 at 06:00 PM .
Yes, this works. Thank you! It was the relativ path.
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Posting Permissions
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Rules
Bookmarks