質問

I'm doing some reorganizing on my web server and would like to change the way my structure works. Currently, everything is stored at the lowest level so that when I access my site the url looks like this:

www.example.com
www.example.com/page1.php

I have many pages in my site and i would like to move them out of the main folder. eg.

www.example.com/folder/
www.example.com/folder/page1.php

however, I would like for users not to see the /folder/ section of the url. In other words, when a user visits my site, I want him to navigate to:

www.example.com/page1.php
www.example.com/myfolder1/page1.php
www.example.com/myfolder2/page2.php
www.example.com/anyfoldername/anypagename.php

but actually be at

www.example.com/folder/page1.php
www.example.com/folder/myfolder1/page1.php
www.example.com/folder/myfolder2/page2.php
www.example.com/folder/anyfoldername/anypagename.php

I want the url to show without the /folder at all times.

Is there a way to do this with the .htaccess file?

役に立ちましたか?

解決

You can easily do this using mod_rewrite. For example:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteRule ^page1\.php$ /folder/page1.php [L]

NOTE: This is to be placed in .htaccess in your website root folder. If placed elsewhere some small tweaking may be required.


UPDATE:

RewriteCond %{REQUEST_URI} !^/folder/
RewriteRule ^(.*)$ /folder/$1 [L]

他のヒント

RewriteEngine On
RewriteBase /
RewriteRule ^([^/]*)$ folder/$1 [L]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top