虚拟目录,接受任何东西

时间:2014-10-05 21:03:48

标签: regex .htaccess mod-rewrite apache2 webserver

对于我的测试项目,我有一个如下所示的目录结构。

test/index.php
test/.htaccess
test/style/style.css
test/style/images/test_image.jpg
test/functions/functions.php

我希望我可以在浏览器中编写任何URL,例如:

  • localhost / test / fsgdffgs / 454-54gfg / fsgdfs545应该指向test / index.php
  • localhost / test / fgdsf / fsgdfgsf_ffd / sdgfgdfdfg /应该指向test / index.php
  • localhost / test / fjdghjf / jhgjjglh / fkghkgfgkfjgkfjkg应该指向test / index.php
  • localhost / test / jfdsghjf / index.php应该指向test / index.php
  • localhost / test / index.php应指向test / index.php
  • localhost / test / style / style.css应指向style / style.css
  • localhost / test / asfgfgd / hfdgkf / fhdhg / style / style.css应指向style / style.css
  • localhost / test / test / style / images / test_image.jpg应指向images / test_image.jpg
  • localhost / test / affg / functions / php应指向test / functions / functions.php

我的.htaccess的内容:

Options -Indexes +FollowSymLinks
RewriteEngine ON
RewriteRule ^.*/(.*\..*)$ $1

不知怎的,它不起作用,试了整整一天为此写一个简短的配置。 Chrome告诉我找不到对象。 我知道如何解决这个问题吗?我几个月前为我的网站编写了这样的配置,但我记不住了......

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

Options -Indexes +FollowSymLinks
RewriteEngine ON

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*/([^/]*)\.css$ /style/$1.css

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*/([^/]*)\.jpg$ /style/images/$1.jpg

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*/([^/]*)functions\.php$ /functions/functions.php