-
Notifications
You must be signed in to change notification settings - Fork 0
/
.htaccess
211 lines (187 loc) · 10.9 KB
/
.htaccess
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
#-------------------------------------------------------------------------------
# CodeIgniter .htaccess file for the main index.php directory
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# If you must have your CI "system" directory at http://www.domain.tld/system/,
# Then I advise you to place a .htaccess file in that directory
# with "deny from all" in it.
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Be sure to replace "domain.tld" with your actual domain and tld anywhere this
# appears in this file.
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Restore "allow from all" / I use a "deny from all" in some directory
# structures, especially where I am hosting multiple sub-domains that point to
# subdirectories of the main domain, this restores it.
#-------------------------------------------------------------------------------
#allow from all
#-------------------------------------------------------------------------------
# Turn off directory listings for increased security
#-------------------------------------------------------------------------------
Options -Indexes
#-------------------------------------------------------------------------------
# Turn on following symbolic links.
#-------------------------------------------------------------------------------
Options +FollowSymLinks
#-------------------------------------------------------------------------------
# Some web servers require this for index.php to be removed properly. You may
# try your .htaccess with or without the following line.
# Most work fine with it.
#-------------------------------------------------------------------------------
Options -MultiViews
#-------------------------------------------------------------------------------
# Make index.php the directory index page
#-------------------------------------------------------------------------------
DirectoryIndex index.php
#-------------------------------------------------------------------------------
# Always make sure mod_rewrite is installed before using.
# If you are on a Linux server, uncomment the line with mod_rewrite.c
# If on a Windows server using XAMPP, uncomment the line with mod_rewrite.so
#-------------------------------------------------------------------------------
<IfModule mod_rewrite.c>
#<IfModule mod_rewrite.so>
#-----------------------------------------------------------------------------
# Turn on the RewriteEngine
#-----------------------------------------------------------------------------
RewriteEngine on
#-----------------------------------------------------------------------------
# Set the base directory where the application root is located.
#-----------------------------------------------------------------------------
# If your application is at http://www.domain.tld/path/to/CI_Application/
# then uncomment the following line. Change /path/to/CI_Application/ to the
# actual URL path not including the domain.tld (or localhost).
# This includes using a subdirectory on localhost, like
# http://localhost/path/to/CI_Application/
#RewriteBase /path/to/CI_Application/
# If your application is at http://www.domain.tld/ (or is http://localhost/)
# then uncomment the following line.
#RewriteBase /BMAH/
#-----------------------------------------------------------------------------
# The following 2 lines will force a [url=http://www.prefix]www.prefix[/url]. If you want to make sure
# your site always displays the www subdomain, then uncomment the following
# 2 lines.
#-----------------------------------------------------------------------------
#RewriteCond %{HTTP_HOST} !^www\.domain\.tld$ [NC]
#RewriteRule ^(.*)$ http://www.domain.tld/$1 [R=301,L]
#-----------------------------------------------------------------------------
# The following 2 lines will remove a www prefix. If you wish to remove the
# www and always have http://domain.tld instead of http://www.domain.tld
# then uncomment the following 2 lines.
#-----------------------------------------------------------------------------
#RewriteCond %{HTTP_HOST} ^www\.domain\.tld$ [NC]
#RewriteRule ^(.*)$ http://domain.tld/$1 [L,R=301]
#-----------------------------------------------------------------------------
# If a controler can't be found - then issue a 404 error from PHP
# Error messages (via the "error" plugin)
#-----------------------------------------------------------------------------
#ErrorDocument 403 /index.php/403/
#ErrorDocument 404 /index.php/404/
#ErrorDocument 500 /index.php/500/
#-----------------------------------------------------------------------------
# Deny any people (or bots) from the following sites: (to stop spam comments)
#-----------------------------------------------------------------------------
#RewriteCond %{HTTP_REFERER} nienschanz\.ru [NC,OR]
#RewriteCond %{HTTP_REFERER} porn\.com
#RewriteRule .* - [F]
# NOTE: If you are having trouble from a certain URL just
# add it above to forbid all visitors from that site.
#-----------------------------------------------------------------------------
# You can also uncomment this if you know the IP:
# Just place the IP address you wish to deny here.
# You may use multiple IP addresses separated by a space.
# You may also use a domain, tld, or a part thereof.
# Deny from 192.168.1.1 127.0.0.1
# Deny from .net example.com
# The above will deny from example.com and from all .net locations.
#-----------------------------------------------------------------------------
#Deny from 192.168.1.1
#-----------------------------------------------------------------------------
# METHOD #1 of HIDING PHP FILES. (There is an alternate method further down.)
# If the file is NOT the index.php file then
# Hide all PHP files so none can be accessed by HTTP.
# This may not be desirable in all cases.
#-----------------------------------------------------------------------------
#RewriteCond %{REQUEST_FILENAME} !index.php
#RewriteRule (.*)\.php$ index.php/$1
#-----------------------------------------------------------------------------
# The following lines begin the conditional setup for removing index.php
# Use either METHOD #1 or METHOD #2, but not both.
#-----------------------------------------------------------------------------
# METHOD #1
# If you want to redirect all files and directories that do not exist (404)
# then use the following 2 statements. This is how
# http://domain.tld/controller/ is redirected to http://domain.tld/index.php
# because /controller/ doesn't really exist, so now CI can use the URL to
# call the correct controller. This is the standard and default method.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# METHOD #2
# If you want to redirect all files/directories that are not a request
# for the following:
# index.php, robots.txt, favicon.ico, /public/, /img/, /css/, /js/
# then use the following statement.
# If you have other applications that are non-CI integrated into your site,
# Like a third-party forum or blog, then this will disable it. Do not
# use if you need to call third-party PHP files.
#RewriteCond $1 !^(index\.php|public|img|css|js|robots\.txt|favicon\.ico)
# ADDITIONAL REWRITE CONDITION: This may be used in addition to one of the
# above METHODs.
# METHOD #2 of HIDING PHP FILES: This is to be used exclusively of the
# method #1 of hiding PHP files listed above. Do not use both methods.
# Explanation: If you would like to hide all PHP files so none can be
# accessed by HTTP, then use the following line.
# NOTE: If you have other applications that are non-CI integrated into your
# site, like a third-party forum or blog, then this will disable it. Do not
# use if you need to call third-party PHP files.
# If you need heightened security against use of PHP files, see my tutorial
# on how to properly protect your directories.
# NOTE: I have not personally tested this condition yet. If you have tested
# it and verified it works or does not work, please contact me and tell me
# about it. http://www.danielwmoore.com/contact.
#RewriteCond %{REQUEST_FILENAME}\.php -f [NC]
#-----------------------------------------------------------------------------
# use the following line if CI is in the root of the URL.
# You may need to use index.php/$1 or index.php?/$1
# Try it with or without the ? after index.php to see which works for you.
# GoDaddy accounts require the ?
# My localhost with XAMPP on Windows also requires the ?
# Most hosts work correctly without the ?, so try it without first unless
# you know your host requires it. It is placed here so you will know where
# it goes in case you need it.
# [NC] = no case - case insensitive
# [L] = Last rule, last rewrite for this set of conditions
# [QSA] = Query String Append, should be used to prevent all redirects from
# going to your default controller, which happens on some server
# configurations.
#-----------------------------------------------------------------------------
RewriteRule ^(.*)$ index.php?/$1 [NC,L,QSA]
#RewriteRule ^(.*)$ index.php/$1 [NC,L,QSA]
#-----------------------------------------------------------------------------
# use the following if CI is in a sub-directory, and place this
# file IN that subdirectory.
# If your CI Application is at http://www.domain.tld/CI_Application/
# Replace 'CI_Application' with the name of the sub-directory.
# Try it with or without the ? after index.php to see which works for you.
# See above for the reasons for the '?'.
# Be sure that this matches the RewriteBase above.
# [NC] = no case - case insensitive
# [L] = Last rule, last rewrite for this set of conditions
# [QSA] = Query String Append, should be used to prevent all redirects from
# going to your default controller, which happens on some server
# configurations.
#-----------------------------------------------------------------------------
#RewriteRule ^(.*)$ CI_Application/index.php?/$1 [NC,L,QSA]
#RewriteRule ^(.*)$ CI_Application/index.php/$1 [NC,L,QSA]
#-------------------------------------------------------------------------------
# Don't forget to end the IfModule check for the rewrite engine.
#-------------------------------------------------------------------------------
</IfModule>
#-------------------------------------------------------------------------------
# If Mod_rewrite is NOT installed go to index.php
# Remember to use mod_rewrite.c for Linux and mod_rewrite.so for Windows.
#-------------------------------------------------------------------------------
<IfModule !mod_rewrite.c>
#<IfModule !mod_rewrite.so>
ErrorDocument 404 index.php
</IfModule>