我主要有两个php - share.php和gen.php
SHARE.PHP http://example.com/share.php?name=52afcb2793007
而
GEN.PHP http://example.com/gen.php?name=images/This%20is%20%20%20example.jpg
我是编写.htaccess的新手,他一直在阅读stackoverflow并找到.htaccess的漂亮网址制作者。 到目前为止,我可以运行share.php或gen.php 我目前的.htaccess看起来像这样
ErrorDocument 404 /404.html
RewriteEngine on
RewriteRule ^new/?$ new.php [NC]
RewriteRule ^webcam/?$ webcam.php [NC]
RewriteRule ^([a-zA-Z0-9]+)$ share.php?name=$1
RewriteRule ^([a-zA-Z0-9]+)/$ share.php?name=$1
RewriteRule ^([a-zA-Z0-9]+)$ gen.php?name=images/$1
RewriteRule ^([a-zA-Z0-9]+)/$ gen.php?name=images/$1
当我提供类似http://example.com/someimage.jpg的网址时,它会出现500服务器错误,我猜这是因为它试图访问share.php并收到错误。
我希望获得的输出是这样的 http://example.com/gen/Image.jpg(图片将被取消而不是%20 - 也在阅读中) http://example.com/some_id(转到share.php) - 我猜这是有效的.htaccess首先看到匹配的规则,并且id存在所以给出结果。
答案 0 :(得分:1)
保持你的.htaccess像这样:
ErrorDocument 404 /404.html
RewriteEngine on
RewriteRule ^new/?$ new.php [L,NC]
RewriteRule ^webcam/?$ webcam.php [L,NC]
## 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
## don't do anything
RewriteRule ^ - [L]
RewriteRule ^(.+?\.jpe?g)/?$ gen.php?name=images/$1 [L,QSA]
RewriteRule ^([a-zA-Z0-9]+)/?$ share.php?name=$1 [L,QSA]