Forum Moderators: phranque
RewriteRule ^sub/http:/www\.example\.com/sub/(.*) http://www.example.com/sub/$1 [R=301,L]
2. I was surprised to see that the content was still served with doubled rot URL. How come?
It simply does not react to such directives.
...this thing keeps returning that double root url.
# always follow the symlinks
Options +FollowSymlinks -MultiViews -Indexes
# X-Frame-Options to prevent clickjacking
Header always append X-Frame-Options SAMEORIGIN
# if you want to use mod_rewrite, set this 'On'
RewriteEngine On
# the path to your phpMyFAQ installation
RewriteBase /sub/
# Maintenance Section - Uncomment the lines below according to your need
# Write below your client IP address (e.g.: 127.0.0.1)
# if you need to keep your web access during maintenance
#RewriteCond %{REMOTE_ADDR} !^127.0.0.1$
# Choose your way of closing the access to PMF:
# a. you can simply forbid access (HTTP 403 Error)
#RewriteRule ^(.*)$ underMaintenance.html [F,L]
# b. return the user an explanation
#RewriteRule ^(.*)$ underMaintenance.html [L]
# show all categories
RewriteCond %{REQUEST_URI} /showcat\.html$ [NC]
RewriteRule ^(.*)$ index.php?action=show [L,QSA]
# the search page
RewriteCond %{REQUEST_URI} /search\.html$ [NC]
RewriteRule ^(.*)$ index.php?action=search [L,QSA]
# opensearch
RewriteCond %{REQUEST_URI} /opensearch\.html$ [NC]
RewriteRule ^(.*)$ opensearch.php [L,QSA]
# the add content page
RewriteCond %{REQUEST_URI} /addcontent\.html$ [NC]
RewriteRule ^(.*)$ index.php?action=add [L,QSA]
# the ask question page
RewriteCond %{REQUEST_URI} /ask\.html$ [NC]
RewriteRule ^(.*)$ index.php?action=ask [L,QSA]
# the open questions page
RewriteCond %{REQUEST_URI} /open\.html$ [NC]
RewriteRule ^(.*)$ index.php?action=open [L,QSA]
# the help page
RewriteCond %{REQUEST_URI} /help\.html$ [NC]
RewriteRule ^(.*)$ index.php?action=help [L,QSA]
# the contact page
RewriteCond %{REQUEST_URI} /contact\.html$ [NC]
RewriteRule ^(.*)$ index.php?action=contact [L,QSA]
# the glossary page
RewriteCond %{REQUEST_URI} /glossary\.html$ [NC]
RewriteRule ^(.*)$ index.php?action=glossary [L,QSA]
# the overview page
RewriteCond %{REQUEST_URI} /overview\.html$ [NC]
RewriteRule ^(.*)$ index.php?action=overview [L,QSA]
# a page with a record (backward compatibility)
# * http://[...]/1_1_en.html
RewriteCond %{REQUEST_URI} ([0-9]+)_([0-9]+)_([a-z\-]+)\.html$ [NC]
RewriteRule ^(.*)_(.*)_(.*)\.html$ index.php?action=artikel&cat=$1&id=$2&artlang=$3 [L,QSA]
# a category page with page count (backward compatibility)
# * http://[...]/category1_1.html
RewriteCond %{REQUEST_URI} category([0-9]+)_([0-9]+)\.html$ [NC]
RewriteRule ^category(.*)_(.*)\.html$ index.php?action=show&cat=$1&seite=$2 [L,QSA]
# a category page (backward compatibility)
# * http://[...]/category1.html
RewriteCond %{REQUEST_URI} category([0-9]+)\.html$ [NC]
RewriteRule ^category(.*)\.html$ index.php?action=show&cat=$1 [L,QSA]
# start page
RewriteRule ^index.html$ index.php [PT]
# sitemap (backward compatibility)
RewriteCond %{REQUEST_URI} sitemap-([a-zA-Z0-9]*)_([a-z\-]+)\.html$ [NC]
RewriteRule ^sitemap-(.*)_(.*)\.html$ index.php?action=sitemap&letter=$1&lang=$2 [L,QSA]
# a solution id page
RewriteCond %{REQUEST_URI} solution_id_([0-9]+)\.html$ [NC]
RewriteRule ^solution_id_(.*)\.html$ index.php?solution_id=$1 [L,QSA]
# PMF faq record page
# * http://[...]/content/1/1/<LANGUAGE CODE>/<FAQ TOPIC>.htm
# * http://[...]/content/1/1/<LANGUAGE CODE>/<FAQ TOPIC>.html
RewriteRule content/([0-9]+)/([0-9]+)/([a-z\-]+)/(.+)\.htm(l?)$ index.php?action=artikel&cat=$1&id=$2&artlang=$3 [L,QSA]
# PMF category page with page count
# * http://[...]/category/1/<PAGE NUMBER/<CATEGORY NAME>.htm
# * http://[...]/category/1/<PAGE NUMBER/<CATEGORY NAME>.html
RewriteRule category/([0-9]+)/([0-9]+)/(.+)\.htm(l?)$ index.php?action=show&cat=$1&seite=$2 [L,QSA]
# PMF category page
# * http://[...]/category/1/<CATEGORY NAME>.htm
# * http://[...]/category/1/<CATEGORY NAME>.html
RewriteRule category/([0-9]+)/(.+)\.htm(l?)$ index.php?action=show&cat=$1 [L,QSA]
# PMF news page
# * http://[...]/news/<ID>/<LANGUAGE CODE>/<HEADER>.htm
# * http://[...]/news/<ID>/<LANGUAGE CODE>/<HEADER>.html
RewriteRule news/([0-9]+)/([a-z\-]+)/(.+)\.htm(l?)$ index.php?action=news&newsid=$1&newslang=$2 [L,QSA]
# PMF sitemap
# * http://[...]/sitemap/<LETTER>/<LANGUAGE CODE>.htm
# * http://[...]/sitemap/<LETTER>/<LANGUAGE CODE>.html
RewriteRule sitemap/([^\/]+)/([a-z\-]+)\.htm(l?)$ index.php?action=sitemap&letter=$1&lang=$2 [L,QSA]
# PMF Google sitemap
# * http://[...]/sitemap.xml
# * http://[...]/sitemap.gz
# * http://[...]/sitemap.xml.gz
#RewriteRule sitemap.xml$ sitemap.xml.php [L]
RewriteRule sitemap.gz$ sitemap.xml.php?gz=1 [L]
RewriteRule sitemap.xml.gz$ sitemap.xml.php?gz=1 [L]
# PMF tags page with page count
# * http://[...]/tags/<ID>/<PAGE NUMBER>/<HEADER>.htm
RewriteRule tags/([0-9]+)/([0-9]+)/(.+)\.htm(l?)$ index.php?action=search&tagging_id=$1&seite=$2 [L,QSA]
# PMF tags page
# * http://[...]/tags/<ID>/<HEADER>.htm
RewriteRule tags/([0-9]+)/([^\/]+)\.htm(l?)$ index.php?action=search&tagging_id=$1 [L,QSA]
# REST/JSON API
# * http://[...]/api/<ACTION>/<LANGUAGE CODE>/<...>
RewriteRule api/getVersion api.php?action=getVersion [L,QSA]
RewriteRule api/getApiVersion api.php?action=getApiVersion [L,QSA]
RewriteRule api/getCount api.php?action=getCount [L,QSA]
RewriteRule api/getDefaultLanguage api.php?action=getDefaultLanguage [L,QSA]
RewriteRule api/search/([a-z\-]+)/([a-z\-]+)$ api.php?action=search&lang=$1&q=$2 [L,QSA]
RewriteRule api/getCategories/([a-z\-]+) api.php?action=getCategories&lang=$1 [L,QSA]
RewriteRule api/getFaqs/([a-z\-]+)/([0-9]+) api.php?action=getFaqs&lang=$1&categoryId=$2 [L,QSA]
RewriteRule api/getFaq/([a-z\-]+)/([0-9]+) api.php?action=getFaq&lang=$1&recordId=$2 [L,QSA]
RewriteRule api/getAllFaqs/([a-z\-]+) api.php?action=getAllFaqs&lang=$1 [L,QSA]
RewriteRule api/getFaqAsPdf/([a-z\-]+)/([0-9]+)/([0-9]+) api.php?action=getFaqAsPdf&lang=$1&categoryId=$2&recordId=$3 [L,QSA]
RewriteRule api/getAttachmentsFromFaq/([a-z\-]+)/([0-9]+) api.php?action=getAttachmentsFromFaq&lang=$1&recordId=$2 [L,QSA]
RewriteRule api/getPopular/([a-z\-]+) api.php?action=getPopular&lang=$1 [L,QSA]
RewriteRule api/getLatest/([a-z\-]+) api.php?action=getLatest&lang=$1 [L,QSA]
RewriteRule api/getNews/([a-z\-]+) api.php?action=getNews&lang=$1 [L,QSA]
RewriteRule api/getPopularSearches/([a-z\-]+) api.php?action=getPopularSearches&lang=$1 [L,QSA]
RewriteRule api/getPopularTags api.php?action=getPopularTags [L,QSA]
RewriteRule api/getFAQsByTag/([a-z\-]+)/([0-9]+) api.php?action=getFAQsByTag&lang=$1&tagId=$2 [L,QSA]
the trouble was on the programmatic side, being fixed.
# When .htaccess file is in the /sub folder...
RewriteRule ^http:/www\.example\.com/sub/(.*) http://www.example.com/sub/$1 [R=301,L]
...but because I was putting it too "low."
...is there any reason why I would use one over another?
Apache internally collapses multiple slashes in the URL-path, which is why you are having problems trying to match the double slash in "http://www".