i need to rewrite this url "http://www.domain.com/admin/web/app_dev.php" to "http://www.domain.com/admin/"
Here is my current htaccess
Options +FollowSymlinks
RewriteEngine On
# Explicitly disable rewriting for front controllers
RewriteRule ^/admin/web/app_dev.php - [L]
RewriteRule ^/admin/web/app.php - [L]
# Fix the bundles folder
RewriteRule ^api/(.*)$ /admin/web/api/$1 [QSA,L]
RewriteRule ^cron/(.*)$ /admin/web/cron/$1 [QSA,L]
RewriteRule ^bundles/(.*)$ /admin/web/bundles/$1 [QSA,L]
RewriteRule ^css/(.*)$ /admin/web/css/$1 [QSA,L]
RewriteRule ^js/(.*)$ /admin/web/js/$1 [QSA,L]
RewriteRule ^img/(.*)$ /admin/web/img/$1 [QSA,L]
RewriteRule ^fonts/(.*)$ /admin/web/fonts/$1 [QSA,L]
RewriteRule ^uploads/(.*)$ /admin/web/uploads/$1 [QSA,L]
RewriteRule ^plugins/(.*)$ /admin/web/plugins/$1 [QSA,L]
RewriteRule ^font-awesome/(.*)$ /admin/web/font-awesome/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
# Change below before deploying to production
#RewriteRule ^(.*)$ /admin/web/app.php [QSA,L]
RewriteRule ^(.*)$ /admin/web/app_dev.php [QSA,L]
#RewriteRule ^/admin/(.*) /admin/web/
RewriteRule ^/admin/?$ /admin/web/ [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Related
http://domain.co.kr/areasearch?sfl=wr_7&stx=apple
I want to use rewriterule to redirect this url to this url
http://domain.co.kr/areasearch/wr_7/apple
I added the below rewriterule regex at the bottom
RewriteRule ^/([^/]+)/([^/]+)/?$ areasearch?sfl=$1&stx=$2 [QSA,L]
When I access the url below, I get a Not Found The requested URL /wr_7/apple was not found on this server. What's the problem?
http://domain.co.kr/areasearch/wr_7/apple
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^shop/list-([0-9a-z]+)$ shop/list.php?ca_id=$1&rewrite=1 [QSA,L]
RewriteRule ^shop/type-([0-9a-z]+)$ shop/listtype.php?type=$1&rewrite=1 [QSA,L]
RewriteRule ^shop/([0-9a-zA-Z_\-]+)$ shop/item.php?it_id=$1&rewrite=1 [QSA,L]
RewriteRule ^shop/([^/]+)/$ shop/item.php?it_seo_title=$1&rewrite=1 [QSA,L]
RewriteRule ^content/([0-9a-zA-Z_]+)$ bbs/content.php?co_id=$1&rewrite=1 [QSA,L]
RewriteRule ^content/([^/]+)/$ bbs/content.php?co_seo_title=$1&rewrite=1 [QSA,L]
RewriteRule ^rss/([0-9a-zA-Z_]+)$ bbs/rss.php?bo_table=$1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)$ bbs/board.php?bo_table=$1&rewrite=1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)/([^/]+)/$ bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)/write$ bbs/write.php?bo_table=$1&rewrite=1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)/([0-9]+)$ bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1 [QSA,L]
RewriteRule ^/([^/]+)/([^/]+)$ areasearch?sfl=$1&stx=$2 [QSA,L]
</IfModule>
Your regex (^/([^/]+)/([^/]+)$) doesn't match areasearch/wr_7/apple
You probably missed that your URL starts with areasearch/ so this should work
^areasearch/([^/]+)/([^/]+)$
I am trying to load php script downloaded from git. Home page is fine.
When I click any of home page link, page is redirecting to localhost/xampp/
Please help me. This is very important to my project.
My .htaccess is:
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index\.
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^([^/]*)$ /?page=$1 [L,QSA]
RewriteRule ^([^-]*)/([^-]*)/$ /?page=$1&act=$2 [QSA,L]
RewriteRule ^upload/([^/]*)$ /?page=upload&act=$1 [L]
RewriteRule ^torrents/([0-9]+)$ /?page=torrents&next=$1 [L,QSA]
RewriteRule ^torrents/cat/([^/]*)$ /?page=torrents&catid=$1 [L,QSA]
RewriteRule ^torrents/cat/([^/]*)/([^/]*)$ /?page=torrents&catid=$1&next=$2 [L,QSA]
RewriteRule ^torrents/search/([^/]*)$ /?page=torrents&search=$1 [L,QSA]
RewriteRule ^torrents/search/([^/]*)/([^/]*)$ /?page=torrents&search=$1&next=$2 [L,QSA]
RewriteRule ^torrents/([^/]*)/([^/]*)$ /?page=torrents&sortedBy=$1&axis=$2 [L,QSA]
RewriteRule ^torrents/([^/]*)/([^/]*)/([^/]*)$ /?page=torrents&next=$1&sortedBy=$2&axis=$3 [L,QSA]
RewriteRule ^torrents/cat/([^/]*)/([^/]*)/([^/]*)$ /?page=torrents&catid=$1&sortedBy=$2&axis=$3 [L,QSA]
RewriteRule ^torrents/cat/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /?page=torrents&catid=$1&next=$2&sortedBy=$3&axis=$4 [L,QSA]
RewriteRule ^torrent-detail/([^/]*)$ /?page=torrent-detail&id=$1 [L,QSA]
RewriteRule ^torrent-detail/([^/]*)/([^/]*)$ /?page=torrent-detail&id=$1&urlTitle=$2 [L,QSA]
RewriteRule ^torrent-edit/([^/]*)/([^/]*)$ /?page=torrent-edit&id=$1&urlTitle=$2 [L]
RewriteRule ^torrent-delete/([^/]*)/([^/]*)$ /?page=torrent-delete&id=$1&hash=$2 [L]
RewriteRule ^download/([^/]*)$ /?page=download&hash=$1 [L]
RewriteRule ^rss/([^/]*)$ /?page=rss&cat=$1 [L]
RewriteRule ^account/([0-9]+)$ /?page=account&next=$1 [QSA,L]
RewriteRule ^admincp/users/([0-9]+)$ /?page=admincp&act=users&next=$1 [QSA,L]
I am facing problem with mod_rewrite ^(.+)$ /article.php?pname=$1 [L,QSA] is working fine but after that other RewriteRule dont work i dont know why ... here is my code
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /article.php?pname=$1 [L,QSA]
RewriteRule ^category/(.*)$ /cat.php?name=$1 [QSA,L]
ErrorDocument 404 /index.php
</IfModule>
If i remove RewriteRule ^(.+)$ /article.php?pname=$1 [L,QSA] other RewriteRule works but it dont work with this, how can both work together ?
Please help
Keep your .htaccess like this:
ErrorDocument 404 /index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L,NE]
RewriteRule ^category/(.*)$ cat.php?name=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ article.php?pname=$1 [L,QSA]
</IfModule>
Simple change order, from:
RewriteRule ^(.+)$ /article.php?pname=$1 [L,QSA]
RewriteRule ^category/(.*)$ /cat.php?name=$1 [QSA,L]
To:
RewriteRule ^category/(.*)$ /cat.php?name=$1 [QSA,L]
RewriteRule ^(.+)$ /article.php?pname=$1 [L,QSA]
Because (.+) will rewrite everithing including cat.php. So when you are trying to access cat.php?name=someName you will get /article.php?pname=cat.php%3Fname%3DsomeName.
You should do following:
RewriteCond $1 !^(cat\.php|someFolder|robots\.txt)
RewriteRule ^(.+)$ /article.php?pname=$1 [L,QSA]
Or even this:
RewriteCond %{DOCUMENT_ROOT} !-f
RewriteRule !(cat\.php|someFolder|robots\.txt)$ /article.php?pname=$1 [QSA,L]
robots.txt should not to be rewrited.
I am not facing another problem with my mod_rewrite, first, time is my .htaccess file:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^news/([0-9]+)/?$ /news?id=$1 [L,QSA]
RewriteRule ^contact/([0-9]+)/?$ /contact?do=$1 [L,QSA]
RewriteRule ^account/([a-zA-Z]+)/?$ /account?action=$1 [L,QSA]
RewriteRule ^admin/([a-zA-Z]+)/?$ /admin?action=$1 [L,QSA]
RewriteRule ^login/([a-zA-Z]+)/?$ /login?action=$1 [L,QSA]
RewriteRule ^register/([a-zA-Z]+)/?$ /register?action=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L] <- This line doesn't work
RewriteRule ^([\w\d~%.:_\-]+)$ index.php?page=$1 [L,QSA]
All lines are working, beside the RewriteRule ^([^.]+)$ $1.php [NC,L]
and when I use this line, all other rules gets interrupted.
What am I doing wrong?
You need to use L flag in your problematic rule.
For removing the .php extension this is better rule:
Options +FollowSymlinks -MultiViews
RewriteEngine on
## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule ^ - [L]
RewriteRule ^news/([0-9]+)/?$ /news?id=$1 [L,QSA]
RewriteRule ^contact/([0-9]+)/?$ /contact?do=$1 [L,QSA]
RewriteRule ^account/([a-zA-Z]+)/?$ /account?action=$1 [L,QSA]
RewriteRule ^admin/([a-zA-Z]+)/?$ /admin?action=$1 [L,QSA]
RewriteRule ^login/([a-zA-Z]+)/?$ /login?action=$1 [L,QSA]
RewriteRule ^register/([a-zA-Z]+)/?$ /register?action=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
RewriteRule ^(.+?)/?$ index.php?page=$1 [L,QSA]
Try something like
#Preventing loop
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [R=301]
RewriteCond %{REQUEST_URI} !^.+\.php.*$
RewriteRule .* - [L]
Put this after RewriteRule ^register/([a-zA-Z]+)/?$ /register?action=$1 [L,QSA]
i have a rewrite rule.
RewriteRule ^pages/(.+)$ info_pages.php?page_url=$1 [L]
this was working well Before.
my url like this but at localhost
http://dressgirls.com/demo2/pages/contact-us.html
this pointing to
http://dressgirls.com/demo2/info_pages.php
when i use this
echo $_GET['page_url'];
it gives me. contact-us.html/contact-us.html/contact-us.html
it should give contact-us.html one time only.
do you have idea what is wrong here.?
This is full code
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^pages/(.+)$ info_pages.php?page_url=$1 [L]
RewriteRule ^reviews/(.+)$ edit_review.php?review_id=$1 [L]
RewriteRule ^deals/(.+)$ category.php [L]
RewriteRule ^city/(.+)$ location_deals.php [L]
#RewriteCond %{REQUEST_FILENAME} =-f
#RewriteRule ^(.*)\.php$ $1.html [NC,L]
#RewriteRule ^(.*)\.html$ $1.php [NC,L]
RewriteCond %{REQUEST_FILENAME} ^(.*)\.html$
RewriteCond %1.php -f
RewriteRule ^(.*)\.html$ $1.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ deal-detail-page.php [QSA,L]
</IfModule>
Thanks.
Change code to:
RewriteBase http://dressgirls.com/
RewriteRule ^pages/(.+)$ info_pages.php?page_url=$1 [L]
and try.