Pretty URLs without mod_rewrite, without .htaccess

后端 未结 8 523
轮回少年
轮回少年 2020-12-03 02:27

Without a possibility to access .htaccess I find myself in a creative impasse. There is no mod_rewriting for me. Nevertheless, I want to be able to do the n

相关标签:
8条回答
  • 2020-12-03 02:34

    If you've the permissions to set custom error documents for your server you could use this to redirect 404 requests.

    E.g. for Apache (http://httpd.apache.org/docs/2.0/mod/core.html#errordocument)

    ErrorDocument 404 /index.php
    

    In the index.php you then can proceed your request by using data from the $_SERVER array.

    0 讨论(0)
  • 2020-12-03 02:35

    I know this question is very old but I didn't see anyone else suggest this possible solution...

    You can get very close to what you want just by adding a question mark after the domain part of the URL, ie;

    http://www.example.com/?Blog/2009/12/10/
    http://www.example.com/?Title_Of_This_Page
    

    Both of the above HTTP requests will now be handled by the same PHP script;

    www.example.com/index.php
    

    and in the index.php script, $_SERVER['REQUEST_URI'] for the two pages above will be respectively;

    Blog/2009/12/10/

    Title_Of_This_Page

    so you can handle them however you want.

    0 讨论(0)
  • 2020-12-03 02:37

    The only way is to use custom 404 page. You have no possibility to interpret extensionless files with PHP interpreter without reconfiguring the web server's MIME-types. But you say that you can't edit even .htaccess, so there's no other way.

    0 讨论(0)
  • 2020-12-03 02:38

    If you omit a trailing slash, Apache will serve the first file [alphabetically] which matches that name, regardless of the extension, at least on the 2 servers I have access to.

    I don't know how you might use this to solve your problem, but it may be useful at some point.

    For example if http://www.somesite.com/abc.html and http://www.somesite.com/abc.php both exist and http://www.somesite.com/abc is requested, http://www.somesite.com/abc.html will be served.

    0 讨论(0)
  • 2020-12-03 02:43

    You can write a URI class which parses the user-friendly URL you defined.

    0 讨论(0)
  • 2020-12-03 02:49

    If the MultiViews option is enabled or you can convince whoever holds the keys to enable it, you can make a script called Blog.php that will be passed requests to example.com/Blog/foo and get '/foo' in the $_SERVER['PATH_INFO'].

    0 讨论(0)
提交回复
热议问题